Ajax / jQuery:如何将 Ajax 调用错误反馈给用户
Ajax / jQuery: How to communicate Ajax call error back to user
我是 Ajax 的新手,希望有人能帮助我。
我在 jQuery 的 onclick 事件中使用下面的 Ajax 调用,以便将数据传递到 PHP 文件,该文件将其插入 MySQL 数据库。
在 PHP 文件中,我根据 SQL INSERT 的结果回显以下内容之一:"record already exists", "update successful", "update failed"
。
到目前为止,一切都按预期进行,但我找不到将其反馈给用户的方法。 为了更新用户,我想提醒或向他们展示 PHP returns 此处,例如"Error: record already exists"。
我检查了几个网站,但找不到正确的方法,下面的方法不起作用。
有人可以帮我解决这个问题并提供一个简短的解释吗?
我的 Ajax 通话(在 jQuery 中):
$.ajax({
url: "ajax.php",
type: "post",
cache: "false",
data: {
email: email,
dob: dob
},
success: function(data) {
// update successful
console.log(data);
},
error: function(){
// update failed
alert('Error: ' + data); // here I would like to communicate back to the user
}
});
更新:
这是我的 PHP 中与结果相呼应的相关部分:
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$email = $_POST["email"];
$dob = $_POST["dob"];
$sql = "SELECT email FROM Users WHERE email = '" . $email . "'";
$query = $conn->query($sql);
if(mysqli_num_rows($query) > 0){
echo "record already exists";
}else{
$sql = "INSERT INTO Users (email, dob) VALUES ('" . $email . "', '" . $dob . "')";
if ($conn->query($sql)) {
echo 'update successful';
}else{
echo 'update failed';
};
}
非常感谢,
麦克
按照@Varun 的建议,尝试在 success
回调
中添加 alert
$.ajax({
url: "ajax.php",
type: "post",
cache: "false",
data: {
email: email,
dob: dob
},
success: function(data) {
// here I would like to communicate back to the user
// update successful
alert(data);
},
error: function(jqxhr, textStatus, errorThrown){
// update failed
alert('Error: ' + errorThrown);
}
});
我是 Ajax 的新手,希望有人能帮助我。
我在 jQuery 的 onclick 事件中使用下面的 Ajax 调用,以便将数据传递到 PHP 文件,该文件将其插入 MySQL 数据库。
在 PHP 文件中,我根据 SQL INSERT 的结果回显以下内容之一:"record already exists", "update successful", "update failed"
。
到目前为止,一切都按预期进行,但我找不到将其反馈给用户的方法。 为了更新用户,我想提醒或向他们展示 PHP returns 此处,例如"Error: record already exists"。
我检查了几个网站,但找不到正确的方法,下面的方法不起作用。
有人可以帮我解决这个问题并提供一个简短的解释吗?
我的 Ajax 通话(在 jQuery 中):
$.ajax({
url: "ajax.php",
type: "post",
cache: "false",
data: {
email: email,
dob: dob
},
success: function(data) {
// update successful
console.log(data);
},
error: function(){
// update failed
alert('Error: ' + data); // here I would like to communicate back to the user
}
});
更新: 这是我的 PHP 中与结果相呼应的相关部分:
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset("utf8");
if($conn->connect_error){
die("Connection failed: " . $conn->connect_error);
}
$email = $_POST["email"];
$dob = $_POST["dob"];
$sql = "SELECT email FROM Users WHERE email = '" . $email . "'";
$query = $conn->query($sql);
if(mysqli_num_rows($query) > 0){
echo "record already exists";
}else{
$sql = "INSERT INTO Users (email, dob) VALUES ('" . $email . "', '" . $dob . "')";
if ($conn->query($sql)) {
echo 'update successful';
}else{
echo 'update failed';
};
}
非常感谢, 麦克
按照@Varun 的建议,尝试在 success
回调
alert
$.ajax({
url: "ajax.php",
type: "post",
cache: "false",
data: {
email: email,
dob: dob
},
success: function(data) {
// here I would like to communicate back to the user
// update successful
alert(data);
},
error: function(jqxhr, textStatus, errorThrown){
// update failed
alert('Error: ' + errorThrown);
}
});