PHP返回jquery / ajax无法正常工作

时间:2015-02-16 23:15:23

标签: javascript php jquery ajax

PHP返回jquery / ajax无法正常工作,

在我的编辑功能中显示错误信息但尚未执行成功功能,在我的删除功能中没有显示任何成功执行...

尝试了一切:((显然不是一切......)

有什么想法吗?

currentPage.EditItem = function(id) {
if (confirm('Are you sure you wish to edit?')) {
console.log("DetailPage :: edit");
var itemm = $("#itemm").val();
var amount = $("#amount").val();
var statuss = $("#statuss").val();
var Uid = localStorage.getItem("Uid");
console.log(statuss);
 if (itemm == "") {
    alert("Please enter item");
} else if (amount == "") {
    alert("Please enter amount");
} else if (statuss == "") {
    alert("Please enter status");
} else {
$.ajax({
type:'POST',
url:'http://www.mywebsite.com/edit.php',    
data:{'Uid':Uid,'itemm':itemm,'amount':amount,'statuss':statuss},

success: function(data) {
alert("Edit item success");
window.location.href = "new_up.html";   
},
error: function() {
alert("Edit user failure");
},
 });
window.location.href = "new_up.html";

};
};
};

PHP

<?php

// Check connection stuff

$itemm_id = $_POST['Uid'];  
$itemm_itemm = $_POST['itemm'];
$itemm_amount = $_POST['amount'];
$itemm_statuss = $_POST['statuss'];
print($itemm_statuss );
$qry = "xxxxxxxxxxx";

if (!mysqli_query($con,$qry))
{
die('Error: ' . mysqli_error($con));
}
echo "success";

mysqli_close($con);

?>

DELETE

currentPage.deleteItem = function(id) {
if (confirm('Are you sure you wish to delete?')) {
var Uid = localStorage.getItem("Uid");

$.ajax({
type:'POST',
url:'http://www.mywersite.com/delete.php',
data:{'Uid':Uid},
success: function(data){
if(data == "YES"){
alert("Item deleted!");
window.location.href = "new_up.html";
}
else{
alert("can't delete the row")
}
},

});
};
};

PHP     

// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$itemm_id = $_POST['Uid'];

$qry = "DELETE FROM balance1 WHERE id ='$itemm_id'";
if (!mysqli_query($con,$qry))
{
die('Error: ' . mysqli_error($con));
}
echo "YES";

mysqli_close($con);

?>

2 个答案:

答案 0 :(得分:1)

您可能希望在发布之前改进代码的缩进。这种方式难以阅读。使用清晰的示例代码发布一个明确的问题将为您提供更多响应。

我没有检查整个代码,但我认为这有助于您找到错误:

只要ajax调用成功将其数据发送到服务器并获得文本回复,就会触发它的成功函数。这意味着当服务器返回SQL错误时也会触发它:此错误消息也是一个回复。

您可能希望在控制台中查看结果以查看正在发生的事情:

success: function(data) {
    console.log(data);
},

或者让脚本检查响应以查看预期的字符串是否成功&#39;被返回或其他东西(如SQL错误):

success: function(data) {
    if(data == 'success'){
        // OK!
    }else{
        // The server didn't say 'success' so something fishy is going on.
    }
},

另外:&#39;成功&#39;将永远与您现在编写代码的方式相呼应。你应该将它放在某个地方,它只会在实际上正常时被触发:

if (mysqli_query($con,$qry)){
    echo "success";
}else{
    die('Error: ' . mysqli_error($con));
}

答案 1 :(得分:0)

你可以这样做:

if (!mysqli_query($con,$qry)) {
    header("HTTP/1.0 404 Not Found");
    exit;
}

应该在jQuery调用中触发error:选项。

你的代码无法工作的原因是因为jQuery的die('Error: ' . mysqli_error($con));实际上意味着“成功”:服务器返回一些文本作为带有标题200的响应 - jQuery不会解析该文本以查看是否它包含“错误”一词。

To get the picture