为什么我的jQuery条件不起作用



我正在使用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);
  }
});

最新更新