在Marketo-submit上调用ajax

call ajax on Marketo submit

本文关键字:ajax 调用 Marketo-submit      更新时间:2023-09-26

我的需求

  • 在wordpress插件中,我需要包含一个Marketo脚本
  • 在提交Marketo Form时,我需要使用Marketo Form元素进行一些计算
  • 在第页上显示结果

请提出实现此功能的解决方案。

我尝试过的

为此,我尝试在点击Marketo提交时使用ajax,但它不起作用,它毫无疑问地停止了,甚至没有返回到Marketo中指定的ReturnURL。我尝试过的代码:

 <script src="//xxxxx.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_1"></form>
<script>
MktoForms2.loadForm("//aqq-abc.marketo.com", "xxx-XXX-xxx", id1, function(form) {
    form.onSubmit(function(e) {e.preventDefault();
        var vals = form.vals();
        $.ajax({
          type: "POST", 
          url: "http://localhost:3422/wordpress/plugin/calculationFILE.php",
          data: {Value1:val["Email"],Value2: vals["Phone"]},
          success: function( data ) { alert(data); },
          error:  function( err ) {alert("Some thing went wrong! Please try again with your values.");}
        }); //ajax call end
        alert("OK after ajax"); //========>THIS IS NOT CALLED-but if ajax statement removed this alert fires. 
      });//OnSubmit end
});//loadForm End
  • 其中我将所有计算放在文件calculationFILE.php中
  • alert("ajax后OK"(;//===>这不是调用的,但如果ajax语句删除,则会触发此警报

编辑

我已经在上面的代码中包含了e.preventDefault((。我仍然无法看到ajax调用正在执行。我需要包含jQuery才能使其工作吗?我在这里错过了什么。你提出的解决方案将对今后的发展有很大帮助。

我必须包含jQuerylib才能进行ajax调用。之后,它识别出ajax调用。完整的工作片段是

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//xxxxx.marketo.com/js/forms2/js/forms2.min.js"></script>
<form id="mktoForm_1"></form>
<script>
MktoForms2.loadForm("//aqq-abc.marketo.com", "xxx-XXX-xxx", id1, function(form) {
    form.onSubmit(function() {
        var vals = form.vals();
        $.ajax({
                    type: "POST", 
                    url: "http://localhost:3422/wordpress/wp-content/plugins/calM/new_generate.php",
                data: {Value1:vals.Email,Value2: vals.Phone},
        success: function( data ) {
                    alert(data);
        },
        error:  function( err ) {alert("Some thing went wrong! Please try again with your values.");}
        });
      });
});