下一个php代码无法更新服务器上的数据。但我也可能会看到设置了“ post”变量,因为js代码正在执行代码的“ if(ajaxReturn(ajax)== true)”部分。
我的逻辑在这里很困惑。 第一: 我看到如果仅使用它,则更新php代码的一部分就可以正常工作(第一段未介绍)。在其他情况下,我不需要使用ajax调用,并且一旦在浏览器中启动页面,数据库中的“ did_read”字段就会更新。此测试告诉我sql查询语法正确。 第二: 我可能还会看到ajax获得成功的响应,这意味着设置了“ post”变量。
那为什么我的代码中不执行sql查询的原因又是什么呢?
Php:
<?php
/*$strid= 'status_218';
$sql = "UPDATE notifications SET did_read='1' WHERE note LIKE '%$strid%'";
$query= mysqli_query($db_conx, $sql);
echo 'did_read_ok';
exit;*/
if (isset($_POST['action']) && $_POST['action'] == "toggleComment"){
if(!isset($_POST['str']) || $_POST['str'] == ""){
mysqli_close($db_conx);
echo 'no_ok';
exit();
}
//$strid= $_POST['str'];
$strid= 'status_218';
if (isset($_POST['str'])){
$sql = "UPDATE notifications SET did_read='1' WHERE note LIKE '%$strid%'";
$query= mysqli_query($db_conx, $sql);
echo 'did_read_ok';
exit;
}
}
?>
Js:
function reply_click(e) {
var str = e.target.parentNode.id;
console.log(str);
var ajax = ajaxObj("POST", "status.php");
ajax.onreadystatechange = function() {
if(ajaxReturn(ajax) == true) {
var aa =(ajax.responseText);
var aa2=aa.replace(/\s+/g, '');
if(aa2 == 'did_read_ok'){
_(str).parentElement.style.display = 'none';
} else {
alert(ajax.responseText);
}
}
}
ajax.send("action=toggleComment&str="+str);
}