我正在使用HTML,PHP和JavaScript开发一个Web应用程序。我找到了一种方法来调用使用AJAX从客户端(HTML和JS)运行数据库操作的PHP方法,这是一个例子:
if (confirm('Sure you want to do that?')) {
$.ajax({
url: "myScripts.php",
type: "POST",
data: {
paramForOperation: myParam,
option: "doAction1"
},
cache: false,
success: function(response) {
//Here I reload or load another page after server is done
window.open("myPage.php", "_self");
}
});
}
所以在这里我使用在数据库上执行INSERT / DELETE / WHATEVER的脚本调用php文件。它工作正常,但如果由于索引已经存在或任何其他原因而无法插入怎么办?如果某种类型的数据有误并且我无法插入,该怎么办?我知道我可以在服务器端验证使用PHP,但是如何返回一条消息说"操作完成"或者"您应该在X字段"?
上使用数字我想到了alert(response);
之类的东西,但它会回归什么?我的PHP函数中有一个echo($msg);
?有没有办法在AJAX中的response
事件上发送结果消息?
感谢您的帮助。
答案 0 :(得分:0)
将收到PHP脚本的任何输出作为响应。请记住,PHP脚本在服务器上运行,只生成输出。 PHP代码本身永远不会到达客户端。
因此,您可以回显消息,并在响应中提醒它。
将它提升一个档次,您可以返回a small piece of JSON或可以解析的XML以及可能包含错误消息和一些错误代码的XML,因此您的脚本也可以对此进行响应,并可能更改其行为(如果插入成功,则将新数据添加到页面中。例如)。
当然,不是从PHP返回代码200(意味着OKAY),而是可以考虑returning other HTTP status codes,因此代码已经表明是否出现了问题。根据状态代码,jQuery将执行成功或错误处理程序,因此很容易为不同的情况制作不同的处理程序。
答案 1 :(得分:0)
让您的服务器使用适当的HTTP状态代码和有意义的错误消息进行响应。使用ajax调用的错误功能。
$.ajax({
url: "myScripts.php",
type: "POST",
data: {},
success: function(response) {
/* no error occured, do stuff... */
}
error: function(jqXHR, textStatus, errorThrown) {
/* handle the error, add custom error messages to any DOM objects, ... */
console.log(textStatus, errorThrown);
}
部分文档:$.ajax和HTTP Status Codes