2016-11-03 4 views
-2

Я просто хочу отправить свою форму на ту же страницу с помощью ajax без обновления страницы. Таким образом, мой ниже код отправляет форму, но значения $ _POST не выбраны ... Я отправляю их правильно. Я не получаю никаких ошибок, но я думаю, что моя форма не отправляется.Ajax form submit без обновления страницы

HTML форма

<form action="" id="fixeddonation" name="fixeddonation" method="post"> 


<input type="hidden" class="donerProject" name="donerProject" value="test"> 
<input type="hidden" class="donersubProject" id="donersubProject" name="donersubProject" value="general"> 
<input type="hidden" class="donerLocations" id="donerLocations" name="donerLocations" value="general"> 

<input type="hidden" class="donationpagetype" name="donationpagetype" value="general"> 
<input type="hidden" class="projectadded" id="projectadded" name="projectadded" value="1"> 
<input type="hidden" value="302" id="pageid" name="pageid"> 
<div class="classsetrepet generalfixshow fullrow row fixed-page"> 
<div class="col-6 text-right">  
<div class="prize">Fixed Amount £</div>  
</div> 
<div class="col-6"> 
<input type="text" id="oneoffamt" name="oneoffamt" class="oneoffamt validatenumber"> 
<span class="amt_error"></span> 
</div> 
</div> 

<br> 
<div class="row"> 
<div class="col-6"></div> 
<div class="col-6"> 
<input type="submit" id="submit_gen_one" class="btn-block" value="submit" name="submit_gen_one"> 
</div> 
</div> 
</form> 

Ajax код

jQuery('#fixeddonation').on('submit', function (e) { 

     e.preventDefault(); 

     jQuery.ajax({ 
      type: 'post', 
      url: 'wp-admin/admin-ajax.php', 
      data: jQuery('#fixeddonation').serialize(), 
      success: function (data) { 
       alert(data); 
       alert('form was submitted'); 
       jQuery('#collapse2').addClass('in').removeAttr('aria-expanded').removeAttr('style'); jQuery('#collapse1').removeClass('in').removeAttr('aria-expanded').removeAttr('style'); 

      } 
     }); 
     return false; 
    }); 

ответ

0

Добавить правильное значение в действие тега вашей формы и попробовать это:

<script> 

$(document).ready(function() { 

var form = $('#fixeddonation'); 

    form.submit(function(ev) { 
    ev.preventDefault(); 


    var formData = form.serialize(); 
    $.ajax({ 
     method: 'POST', 
     url: form.attr('action'), 
     data: formData 
    }) .done(function(data) { 
     alert(data); 
    }); 
    }); 

}); // end .ready() 

</script> 

Не нужно возвращать ложь как вы уже назвали preventDefault() первая вещь

+0

спасибо @Maximo ok позвольте мне попробовать это – Zeeshan

+0

ok что я могу добавить в действие – Zeeshan

+0

Maximo форма установлена ​​для обновления на той же странице в wordpress, поэтому в этом сценарии, что я могу использовать в поле действия – Zeeshan

Смежные вопросы