1

私のajax呼び出しはデータベースにレコードを入力します(これはデータを記録するフォームの最初の部分です)ので、データベースエントリからIDを返す必要があります。

問題は、2 回起動しているため、毎回 2 つのデータベース エントリを作成していることです。

$countPHP コードでandを使用して、while($count>0)ループしていないことを確認しようとしましたが、ループしているとは思わなかったので、問題は jQuery にあります。

送信ボタンのクリック機能を入れてみpreventDefaultましたが、うまくいきませんでした。

これが私のコードです:

$(document).ready(function(){

    $('#wpgstep1').one('click',function(){
        // validate form fields are all filled in

        var budget=$('#budget').val();
        if(budget=='')
        {
            $('#budgeterror').show();
        }

        var yellowpages=$('#ads-yellowpages').val();
        var flyers=$('#ads-flyers').val();
        var brochures=$('#ads-brochures').val();
        var radiotv=$('#ads-radiotv').val();
        var none=$('#ads-none').val();
        var other=$('ads-other').val();
        var otherstatement=$('ads-other-statement').val();
        var cust_id=$('#cust_id').val();

        if(other !='')
        {
            if(otherstatement==='')
            {

                $('#adsothererror').show();
            }
        }
        else
        {
            otherin='0';
        }
        if(yellowpages==="on")
        {
            yellowpagesin='1';
        }
        else{
            yellowpagesin='0';
        }
        if(flyers==="on")
        {
            flyersin='1';
        }
        else
        {
            flyersin='0';
        }
        if(brochures==="on")
        {
            brochuresin='1'
        }
        else
        {
            brochuresin='0';
        }
        if(radiotv==="on")
        {
            radiotvin='1';
        }
        else
        {
            radiotvin='0';
        }
        if(none==="on")
        {
            nonein='1'
        }
        else
        {
            nonein='0';
        }
        var dataString='cust_id=' + cust_id + '&step=1&budget=' + budget + '&yellowpages='+yellowpagesin + '&flyers=' + flyersin + '&brochures='  + brochuresin + '&radiotv='+ radiotvin + '&none='+ nonein + '&other=' + otherstatement;

        $.ajax({
            type:  "POST",
            url:  "submitwpg.php",
            data:  dataString,
            dataType:'json',
            success:  function(data)
            {
                alert(data);
                var i="";
                var p=eval (data);

                for (i in p)
                {
                    $('#wpgpart2').append('<input type=hidden name=wpgid value=' + p[i] + '>');
                }
                $('#wpgform1').hide();
                $('#wpgform2').show();
            }
        });
        return false;
    });

});
4

2 に答える 2

1

グローバル変数を作成する

var form_submitting = false;

あなたのajax呼び出しの上

if(form_submitting == false){
    form_submitting = true;

    //your ajax call

}

あなたのajax呼び出しの成功関数で

form_submitting = false;
于 2013-07-28T22:21:25.380 に答える
0

送信ボタンがフォーム内にある場合、ajax 関数が実行されていて、フォームが定期的に投稿されている可能性があります。あなたはあなたの

<input type='submit' />

の中へ

<button type='button' onclick='validateAndAjaxFunction(); return false;'></button>
于 2013-07-28T22:28:14.130 に答える