2016-10-25 2 views
0

моего требованиявызова Ajax на Marketo отправить

  • В WordPress плагин мне нужно включить скрипт, Marketo
  • на Submit из Marketo формы мне нужно сделать некоторые расчеты с использованием Marketo элементы формы
  • дисплея Результаты на странице

Пожалуйста, предложите решение для этого.

То, что я пытался

Для этого я пытаюсь использовать Ajax на щелчке Marketo представить, но он не работает, он останавливается abrubtly и даже не возвращаться к ReturnUrl, указанному в Marketo , Код, который я пробовал:

<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
  • оповещения ("OK после Аякса"); // ===> ЭТО НЕ ЗВОНО - но если инструкция ajax удалена, это предупреждение срабатывает.

Редактировать

Я включил e.preventDefault(), как сейчас в вышеприведенном code.I до сих пор не в состоянии видеть Ajax вызова выполняющихся. Нужно ли включать jQuery, чтобы сделать эту работу? Что мне здесь не хватает. Ваше предложение для решения поможет вам продвинуться вперед.

+0

предотвратить отправку формы с помощью 'e.preventDefault' – madalinivascu

+0

Сначала попытайтесь правильно [enqueueing сценарий] (http://stackoverflow.com/documentation/wordpress/1103/enqueuing-scripts/3542/enqueuing-scripts-in-functions-php # t = 201610250555007697672), а затем внутри, как предположил мандалин, предотвратить действие формы по умолчанию (отправка). –

+0

ok спасибо madalin & dingo_d. Я попробую это. – jAntoni

ответ

0

Мне пришлось включить jQuery lib для вызова 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.");} 
     }); 

     }); 
});