立即发送响应PHP Jquery AJAX

时间:2017-04-23 12:41:07

标签: php jquery mysql ajax xmlhttprequest

我对如何执行AJAX请求有一个基本的想法,但我真正想要的是在获取数据后立即发送响应,而不是等待所有的mysql查询结果完成。有没有办法做到这一点?你能说出一个主意吗?

我真正想象的是例如:

当文档准备好后,客户端将发送数据库中所有列表的请求。 虽然服务器端的PHP正在获取数据,但它会将行作为json发送,然后客户端继续解析这些响应,直到服务器端无法再获取行为止。

有可能吗?如果是的话,你有什么想法吗?

1 个答案:

答案 0 :(得分:-1)

我有一小段代码。你可能会接受!

JQuery的:

<script>

    $(document).ready(function() {
        view();
    });

    function register()
    {
        var f = $('#fname').val();
        var l = $('#lname').val();

        $.ajax({
            url:'index.php/control/insert',
            data :{fname : f, lname : l},
            type:'post',
            success:function(msg){
                return view();
            }
        });
    }

  function view()
  {
        $.ajax({
            url:'index.php/control/show',
            data :{},
            type:'post',
            success:function(msg){
                $('#table').html(msg);
            }
        });
    }
</script>

HTML表单:

<form action="" method="post">
    <table align="center" border="11">
        <tr>
            <td>First name</td>
            <td><input type="text" name="fname" id="fname" /></td>
        </tr>
        <tr>
            <td>Last Name</td>
            <td><input type="text" name="lname" id="lname" /></td>
        </tr>
        <tr>
            <td colspan="2"><input type="button" id="submit" name="submit" onclick="register()" value="Register"></td>
        </tr>
    </table>
</form>

My Controller for Mysql功能:

public function insert()
{
    $sql = "INSERT INTO MyGuests (firstname, lastname) VALUES ('".$_REQUEST['fname']."', '".$_REQUEST['lname']."')";

    if ($conn->query($sql) === TRUE) {
        echo "New record created successfully";
    }
}
public function show()
{
    $sql = "SELECT * FROM MyGuests";

    if ($data = $conn->query($sql) === TRUE) {
        echo "New record created successfully";
    }

    echo "<br><table border='1' align='center'>
            <tr>
                <th>Firstname</th>
               <th>Lastname</th>
            </tr>";
            foreach($data as $s)
            {
               echo "<tr><td>".$s->fname."</td>";
                echo "<td>".$s->lname."</td></tr>";
            }
    echo "</table>" ;
}

确保代码未经过测试这是您的要求的样本,旨在通知立即调用函数。这里我在将数据插入数据库之后就调用了view()函数。