使用AJAX在网页上显示服务器的响应?

时间:2015-12-31 00:02:09

标签: javascript php ajax

我正在使用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事件上发送结果消息?

感谢您的帮助。

2 个答案:

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

部分文档:$.ajaxHTTP Status Codes