2016-11-01 13 views
1

私はajaxでフォームを送信し、submit時にdbに値を保存します。ここにフォームコードがあります。preventDefaultの後にフォームを送信できません。Jquery ajax wordpress

jQuery(document).ready(function ($) { 
         $('#form').on('submit', function (e) { 
          e.preventDefault(); 
          var form = $(this); 
          var data = $('#form').serialize(); 
          var goToPaypal = false; 

          if(goToPaypal == false){ 
           e.preventDefault() 
          }else{ 
           form.submit(); 
          } 

          $.post('<?php echo admin_url('admin-ajax.php'); ?>', {action:'enroll_data', data: data}, function(success){ 

           alert(success); 
           if(success == 'success'){ 
            goToPaypal = true; 
           }else{ 
            alert('Failed to process form data'); 
           } 


          }); 
         }); 
        }); 

<form method="post" action="https://www.paypal.com/cgi-bin/webscr"> 

を次のようにフォームのアクションがある。しかし、フォームが提出され、正常値をデータベースに保存した後、ポールを支払うためにリダイレクトされていません。おかげ

答えて

0

Ajaxは

if(success == 'success'){ 
    form.submit(); 
}else{ 
    alert('Failed to process form data'); 
} 

成功した後、フォームを提出する追加またはでpreventDefault()フォームは、トップが行うの除去解決策を見つけ、クリックイベント

$('#form').find('input[type="submit"]').on('click', function (e) { 
    e.preventDefault(); 
          var form = $('#form'); 
          var data = $('#form').serialize(); 
          var goToPaypal = false; 

          if(goToPaypal == false){ 
           e.preventDefault() 
          }else{ 
           form.submit(); 
          } 

          $.post('<?php echo admin_url('admin-ajax.php'); ?>', {action:'enroll_data', data: data}, function(success){ 

           alert(success); 
           if(success == 'success'){ 
            goToPaypal = true; 
            form.submit(); 
           }else{ 
            alert('Failed to process form data'); 
           } 


          }); 
}); 
+0

こんにちは、私はすでにそれを行っていますが、まだフォームはpaypal URLに行くことはありません – Aqeel

+0

あなたのajaxは成功ですか? – madalinivascu

+0

はいajaxがデータを保存しています – Aqeel

0

にイベントを変更トリック。フォームはデータベースの値を保存し、paypalにリダイレクトします。私は、ajaxリクエストの失敗したマッサージでpreventDefault()を追加しました。そうすれば、フォームにはクエリーにエラーがあっても送信されません。あなたの助けを借りてくれてありがとう。

関連する問題