我正在使用ajax将数据插入到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"; }
答案 0 :(得分:2)
最有可能的问题是由于某些空格被添加到返回的字符串中而引起的。您可以使用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);
}
});