Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我有一个ajax调用触发了两次(jQuery),并尝试了这里找到的解决方案,但没有任何效果_Php_Jquery_Ajax - Fatal编程技术网

Php 我有一个ajax调用触发了两次(jQuery),并尝试了这里找到的解决方案,但没有任何效果

Php 我有一个ajax调用触发了两次(jQuery),并尝试了这里找到的解决方案,但没有任何效果,php,jquery,ajax,Php,Jquery,Ajax,我的ajax调用将记录输入数据库(它是记录数据的表单的第一部分),因此我需要它从数据库条目返回id 问题是,它触发了两次,所以每次生成2个数据库条目 我试着在php代码中使用$count和while($count>0),以确保它不会循环——我认为不会循环,所以问题在于我的jQuery 我尝试将preventDefault放在我的提交按钮单击功能上,但也没有成功 这是我的密码: $(document).ready(function(){ $('#wpgstep1').one('click

我的ajax调用将记录输入数据库(它是记录数据的表单的第一部分),因此我需要它从数据库条目返回id

问题是,它触发了两次,所以每次生成2个数据库条目

我试着在php代码中使用
$count
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;
    });

});
$(文档).ready(函数(){
$('wpgstep1').one('click',function(){
//验证表单字段已全部填写
var预算=$(“#预算”).val();
如果(预算=“”)
{
$(“#预算恐怖”).show();
}
var yellowpages=$('#ads yellowpages').val();
var flyers=$(“#广告传单”).val();
var手册=$(“#广告手册”).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(otherstatement=='')
{
$('#adsothererror').show();
}
}
其他的
{
otherin='0';
}
如果(黄页==“打开”)
{
黄页=1';
}
否则{
黄页=0';
}
如果(传单==“打开”)
{
flyersin='1';
}
其他的
{
flyersin='0';
}
如果(手册==“打开”)
{
小册子in='1'
}
其他的
{
小册子in='0';
}
如果(无线电视==“打开”)
{
radiotvin='1';
}
其他的
{
radiotvin='0';
}
如果(无==“打开”)
{
不在class='1'
}
其他的
{
nonein='0';
}
var dataString='cust_id='+cust_id+'&step=1&budget='+budget+'&yellowpagesin='+yellowpagesin+'&flyers='+flyersin+'&brochures='+brochuresin+'&radiotv='+radiotvin+'&none='+nonein+'&other='+otherstatement;
$.ajax({
类型:“POST”,
url:“submitwpg.php”,
数据:dataString,
数据类型:'json',
成功:功能(数据)
{
警报(数据);
var i=“”;
var p=评估(数据);
对于(p中的i)
{
$('wpgpart2')。附加('');
}
$('#wpgform1').hide();
$('wpgform2').show();
}
});
返回false;
});
});
生成一个全局变量

var form_submitting = false;
在ajax调用之上

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

    //your ajax call

}
form_submitting = false;
在ajax调用的成功函数中

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

    //your ajax call

}
form_submitting = false;
生成一个全局变量

var form_submitting = false;
在ajax调用之上

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

    //your ajax call

}
form_submitting = false;
在ajax调用的成功函数中

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

    //your ajax call

}
form_submitting = false;

如果提交按钮位于表单内部,则可能是ajax功能正在执行,然后表单定期发布。你可以试着转动你的手

<input type='submit' />

进入


如果提交按钮位于表单内部,则可能是ajax功能正在执行,然后表单会定期发布。你可以试着转动你的手

<input type='submit' />

进入



我在下面发布了一个答案,但问题是。。。你是在双击链接/按钮吗?我会先注释掉ajax调用,然后想一想它会触发两次吗?通过
alert()
console.log()
提问。然后,当你知道它发射一次时,问题可能就消失了。我在下面贴了一个答案,但问题是。。。你是在双击链接/按钮吗?我会先注释掉ajax调用,然后想一想它会触发两次吗?通过
alert()
console.log()
提问。然后,当你知道它发射一次时,问题可能就消失了。我试过了,但它仍然发射了两次。我可以在Firebug控制台中看到它,然后它会在数据库中进行双重输入。这是非常令人困惑的…和令人沮丧的。这就像两个事件被触发一样,一个接着一个。@user2272153如果您正确地实现了上面的代码,那么无法进行两次提交,我唯一的建议是删除
form_submitting=false来自您的成功代码,因此ajax只能启动一次,然后再启动。即使我将submit按钮设置为submit按钮(我只是创建了一个div,并将其样式设置为带有ID的按钮,以分配给单击事件),它仍然会启动两次。我想知道如果我完全删除标签会发生什么,但我也不认为这是答案。好吧,我忽略了使其成为全局变量…当我这么做时,瞧。只提交一次!谢谢我试过了,但它仍然发射了两次。我可以在Firebug控制台中看到它,然后它会在数据库中进行双重输入。这是非常令人困惑的…和令人沮丧的。这就像两个事件被触发一样,一个接着一个。@user2272153如果您正确地实现了上面的代码,那么无法进行两次提交,我唯一的建议是删除
form_submitting=false来自您的成功代码,因此ajax只能启动一次,然后再启动。即使我将submit按钮设置为submit按钮(我只是创建了一个div,并将其样式设置为带有ID的按钮,以分配给单击事件),它仍然会启动两次。我想知道如果我完全删除标签会发生什么,但我也不认为这是答案。好吧,我忽略了使其成为全局变量…当我这么做时,瞧。只提交一次!