我正在使用ajax将数据插入到带有php的MySQL数据库中。一旦数据成功插入数据库,我想使用条件触发警报。
我不知道为什么我在 jquery 中的条件不起作用。php方面工作正常,并返回"成功"响应,我可以在alert()
中看到该响应,但在使用该条件时看不到。希望有人能告诉我我做错了什么,谢谢。
jquery
submitHandler: function (form) {
var formdata = $("#edit_post").serialize();
$.post('edit_upload.php', formdata,
function(data){
if(data =="success"){ //alert if records inserted
alert(data);
}
});
return false;
}
edit_upload.php
//Update Database
$stmt = $db_conx->prepare('UPDATE tbl_uploads SET title=?, detail=? WHERE id=?');
$stmt->bind_param('sss',$title,$detail,$id);
$stmt->execute();
if ($stmt->execute()) { //true
echo
'success';
}
else{ echo "error"; }
问题很可能是由返回的字符串中添加了一些空格引起的。您可以使用trim()
删除它:
$.post('edit_upload.php', formdata, function(data) {
if (data.trim() == 'success') {
console.log(data);
}
});
您应该注意,通过 JSON 返回布尔值会更好,而且更不容易出错,如下所示:
$stmt = $db_conx->prepare('UPDATE tbl_uploads SET title=?, detail=? WHERE id=?');
$stmt->bind_param('sss', $title, $detail, $id);
echo json_encode(array('success' => $stmt->execute());
$.post('edit_upload.php', formdata, function(data) {
if (data.success) {
console.log(data);
}
});