如何使用发送响应回到ajax并单独处理每个响应

时间:2013-12-26 21:33:57

标签: javascript php jquery mysql ajax

在第1页: 加载一个AJAX脚本加载Page2

在第2页: 将运行mysqli数据库查询,如果数据库查询成功,我想将成功响应发送回AJAX查询并重新加载页面。如果数据库查询失败,我想将失败响应发送回AJAX查询并重定向到失败页面。

这可能吗?我怎么写这个?我是AJAX的新手,已经阅读了一些AJAX脚本并阅读了文档,但我通过试验代码来找到最适合我的解决方案,从而学到最多。我玩了一些ajax脚本,但无法使它们中的任何一个正常工作,并且找不到任何能够满足我需要的东西。看起来这将是一个相当简单的ajax脚本,所以我希望有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

这是一个可能的jQuery解决方案。如果您想要纯JavaScript,请告诉我。

的index.html

<input type="text" id="input" />
<button type="button">Submit!</button>



scripts.js中

$('button').on('click',function() {
    var val = $('#input').val();

    sendQuery(val);
});

function sendQuery(x) {
    var val = x;

    $('body').load('query.php?input=' + val);
}



query.php

$mysqli = new mysqli('localhost','root','password','db');

$val = $_GET['input'];

$query = <<<Q
         SELECT
         *

         FROM
         table

         WHERE
         column = ?
Q;

$stmt = $mysqli->stmt_init();

if($stmt->prepare($query)) {
    $stmt->bind_param("i",$val);
    $stmt->execute();

    while($stmt->fetch()) {
            #if the query is successful
            echo '<script>
                     $(function() {
                          location.reload();
                     });
                 </script>';
    }
} else {
        echo '<script>
                 $(function() {
                      window.location.href = "http://www.yoursite.com/errorpage.html";
                 });
             </script>';
}

$mysqli->close();   

我唯一不确定的是为什么你想用AJAX发回一个回复,然后转到一个全新的页面。对我来说,这似乎就是否定了你想要首先使用AJAX的原因。有什么想法吗?

以上所做的是使用jQuery将XMLHTTPRequest.responseText加载到正文中(reponseText是由php doc回应的脚本)。在这种情况下,在db成功的情况下,它会回显重新加载页面的脚本。如果发生故障,它会回显一个脚本,将用户移动到错误页面。