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