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

时间:2017-03-17 08:47:29

标签: php jquery

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

1 个答案:

答案 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);
  }
});