Jquery Ajax请求显示正在处理的记录

时间:2016-01-22 13:38:45

标签: php jquery ajax

我想知道是否有人知道如何在jquery ajax请求中显示正在处理哪条记录。例如: 我有一个来自index.html,jquery_ajax.js,session_dispaly.php和search.php的html输入。

一个on keyup事件,听取输入按下 我还有一个jquery ajax发送一个post请求和一个处理该请求的php页面......

现在我想做的是......当php页面处理请求时,我想让用户知道什么是goin on ..说:

我的php search.php循环播放1-1000

虽然它的循环我希望通过session_display.php告诉用户,

正在处理

1

正在处理

2

等等

谢谢。

index.html
<html>
    <head>
        <title>Testing Message Display</title>
        <link rel='stylesheet' href="depends/styles/bootstrap.min.css">
        <link rel='stylesheet' href="depends/styles/styles.css">
        <script src="depends/js/jquery.js"></script>
        <script src="depends/js/bootstrap.min.js"></script>
    </head>
    <body>
            <div class="form-action">
                <input class="form-control span6" id="search" type="text" placeholder="Please enter user name">
            </div>
    </body>
    <script src="depends/js/jquery_ajax.js"></script>
</html>

jquery_ajax.js
    $('#search').on( 'keyup', function(e) {
        if (  e.which === 13 ){
            $.ajax({
                url: "depends/php_request/search.php",
                method:"POST",
                data: {params:$('#search').val()},
                always: function(){
                    $.ajax({
                        url: "depends/display_session.php",
                        success:function(responseStatus){
                            console.log(responseStatus)
                        }
                    })
                },
                success:function(successResponse){
                    console.log(successResponse)
                }
            })
        }
    })

display_session.php
<?php
@session_start();
echo $_SESSION['Names'];
unset($_SESSION['Names']);
?>

search.php
<?php
@session_start();
$name=array();
for($i = 1; $i <=100000; $i++){
    $_SESSION['Names'] = $i . 'is being processed';
    $name[] = $i;    
}
echo json_encode($name);
?>

3 个答案:

答案 0 :(得分:0)

您可以使用console.log()

`$.ajax({
    //params goes here
    always: function(data) {
        console.log(data);
    }
});`
在您输入.keyup();之前

,在Chrome / Firefox上按F12打开您的开发者工具,查看代码返回的数据。
请记住将dataType指定为HTML以查看错误或将json指定为数组 或者您可以使用像div#test这样的HTML元素,并在其上放置返回以查看结果

`$.ajax({
    //params goes here
    always: function(data) {
        $("div#test").html(data);
    }`
});`

请务必正确设置dataType 我认为这是很好的解释。

答案 1 :(得分:0)

您可以使用:

console.log(data);

OR

alert(data);

OR

$("div#test").html(data);

答案 2 :(得分:0)

如果我正确理解您的问题,您可以执行以下操作:

$.ajax({
    // ajax params
    beforeSend: function() {
        alert('tell user that request is under process');
        // or you can open a modal box
    },
    done: function() {
        alert('tell user that request is done');
        // or you can close modal box
    }
});

您可以显示进度条,有很多关于如何操作的教程。只是Google吧。