Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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
Javascript Jquery Ajax失败。。。随机成功_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript Jquery Ajax失败。。。随机成功

Javascript Jquery Ajax失败。。。随机成功,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,这是我的问题: 我尝试用JQuery调用Ajax, 这将调用一个PHP页面,执行代码,如果正确,则返回OK,如果不正确,则返回STOP。 我没有收到任何回复(第一个问题), 而真正的问题是: 有时查询会成功,但总是返回错误。(即使我在php页面中的sql查询得到执行) 代码如下: <script> $("a.confirm").click(function(event){ var id = event.target.id; $.ajax({ type

这是我的问题:
我尝试用JQuery调用Ajax, 这将调用一个PHP页面,执行代码,如果正确,则返回OK,如果不正确,则返回STOP。
我没有收到任何回复(第一个问题), 而真正的问题是:
有时查询会成功,但总是返回错误。(即使我在php页面中的sql查询得到执行)

代码如下:

<script>
$("a.confirm").click(function(event){
    var id = event.target.id;
    $.ajax({
        type    :"POST",
        url     :'./PHP/UTILS/confirm.php',
        data    :{  "id" : id,
                 },
        beforeSend: function(){
            alert("in progress");
        },
        complete: function(){
            alert("done");
        },
        success: function(){
            alert("OK");
        },
        error: function(xhr, desc, err) {
            console.log(xhr);
            console.log("Details: " + desc + "\nError:" + err + "\n");
      }
    });
});
</script>

$(“a.confirm”)。单击(函数(事件){
var id=event.target.id;
$.ajax({
类型:“POST”,
url:“./PHP/UTILS/confirm.PHP”,
数据:{“id”:id,
},
beforeSend:function(){
警报(“进行中”);
},
完成:函数(){
警惕(“完成”);
},
成功:函数(){
警报(“正常”);
},
错误:函数(xhr、desc、err){
console.log(xhr);
console.log(“详细信息:“+desc+”\n错误:“+err+”\n”);
}
});
});
这是针对ajax的,现在是它调用的页面:

<?php
include "./functionsExt.php";
$db = connectToDb('mydb');
$id = $_POST['id'];
$mysql = $db->prepare("UPDATE `test` SET `test_date_p` = CURRENT_TIMESTAMP, `test_status` = '2' WHERE `test_id` = '$id'");
if($mysql->execute()){
    echo "OK";
}else{
    echo "STOP";
}
?>

我建议您在删除“id”之后数据中的逗号后再尝试

请允许我提及以下内容:

  • 回显post变量并检查响应
  • 然后回显您想要的,并检查是否有响应
  • 写成功和失败的更好方法

    success:   function(data)
    {    
    alert(data);
    }
    failure : function(){
    alert(failed);
    }
    
  • 它最终会用您收到的响应数据提醒您。因此,这对于测试目的来说是很好的


    希望有帮助:)

    我想我发现了一些有趣的东西。。。 我试着回邮。。。 帖子被很好地发送到php文件

    但我注意到:

    如果我添加event.preventDefault();在我的jquery代码中,我在一个警报中显示了post echo+ok(我猜这是成功警报,因为我这次没有日志消息…)

    我会再试一次。。。(如果它是这样工作的,那么我需要找到一种方法来重新启用默认链接单击功能,我需要刷新页面…调用ajax后页面内容不一样…)

    再试一次,现在似乎有效。。。 但是,我没有结束这个主题,因为我现在必须在我的php文件中添加更多的查询。。。我仍然需要一种方法在执行后刷新页面。。。有什么想法吗


    (thanx stacky,您的建议似乎已经解决了“主要”问题:p)

    functionsExt.php与confirm.php位于同一文件夹中,对吗?
    CURRENT\u TIMESTAMP
    被称为
    NOW()
    。因此,你的回答就到此为止。由于请求本身成功
    success
    被调用。那么,functionsExt.php与confirm.php位于同一文件夹中。。。我已经查过了…:(有时MYSQL查询会被执行……当前的_TIMESTAMP工作正常,它在DB中写入当前的TS……我无法得到“答案”,我使用FireBug,profiler会给我一个答案:Object{readyState=0,status=0,statusText=“error”,plus…}详细信息:error error:(没有!)但MYSQL查询工作正常(这一次…有时它不起作用…idk why^^)现在我再次尝试,mysql查询不起作用…:/谢谢你的回复…我删除了数据中的逗号…我像你一样编辑了成功…但它似乎没有经过成功部分…没有显示任何内容…我得到了“完整警报”和控制台日志(所以是“错误”)再次…(这里有趣的是,有时(idk when或why)mysql查询会被执行!现在我编辑了代码,如您所示,我尝试了,但没有成功,但我确信如果我再尝试几次,它会成功一次(但无论如何都会给我一个错误日志!)…然后在一段时间内不再工作…:'(您是否尝试回显post变量。您是否在php文件中获取了该变量?只需编写成功和失败,并对结果进行评论:)@user3774191将我的答案标记为已接受。:D然后我很乐意为您提供有关查询的更多想法:P