我正在尝试通过jQuery和AJAX更新数据库条目。 我正在检查我发送的值是否正确 - 但我不确定如何检查数据库未更新的原因。
我的代码如下:
$(document).on("click", ".approve", function(){
var classes = $(this).parents('div:eq(0)'); // this gets the parent classes.
i = 0;
var pros = [];
classes.find(".prosncons .pros ul li").each(function(){
pros.push($(this).text());
});
var cons = [];
classes.find(".prosncons .cons ul li").each(function(){
cons.push($(this).text());
});
var notes = classes.find(".notes").text();
var id = classes.find(".id").text();
var data = "method=approve&pros="+pros+"&cons="+cons+"¬es="+notes+"&id="+id;
$.ajax({
type: "POST",
url: "../scripts/upload.php",
data: data,
success: $(this).closest(".approval").remove(),
});
});
PHP ::
if($method == "approve"){
$sql = "UPDATE `approval` SET approved = 1 WHERE pros=:pros, cons=:cons, notes=:notes, id=:id";
$statement = $conn->prepare($sql);
$statement->execute(array(':pros' => $pros, ':cons' => $cons, ':notes' => $notes, ':id'=> $id));
}
答案 0 :(得分:1)
您没有以正确的方式将数据发送到php文件
使用以下命令更改您的ajax请求:
$.ajax({
type: "POST",
url: "../scripts/upload.php",
data: { method: "approve", pros: pros, cons:cons, note:notes, id:id },
success: $(this).closest(".approval").remove(),
});
要将您的变量放入php文件,您可以使用$_POST['var_name']
退出该文件
在你的php中试试这个来检查method
:
if($_POST['method'] == "approve"){
$sql = "UPDATE `approval` SET approved = 1 WHERE pros=:pros, cons=:cons, notes=:notes, id=:id";
$statement = $conn->prepare($sql);
$statement->execute(array(':pros' => $_POST['pros'], ':cons' => $_POST['cons'], ':notes' => $_POST['notes'], ':id'=> $_POST['id']));
}
答案 1 :(得分:0)
您可以检查$conn->error
是否有上一个错误。这应该告诉你是否有错误。
我通常会检查是否有错误,如果有,我会返回错误状态,所以我的JS代码知道有问题,然后处理它。