AJAX如何获取返回值和数据库连接

时间:2015-04-14 21:31:22

标签: php jquery mysql ajax

我对jQuery和AJAX很新。 我通过AJAX发送请求来检查文件' test'每5秒钟工作正常。 '测试'代表test.php文件。

<script>
$(document).ready(function () {
    function load() {
        var test = "<?php echo $test; ?>/";
        $.ajax({ //create an ajax request to load_page.php
            type: "GET",
            url: test,
            dataType: "html", //expect html to be returned    
            contentType: "text/html",            
            success: function (response) {
                $("#responsecontainer").html(response);
                setTimeout(load, 5000)
            }
        });
    }

    load(); //if you don't want the click
   // $("#display").click(load); //if you want to start the display on click
});
</script>

<div id="responsecontainer"></div>

test.php的

            $id = $this->session->userdata('UserID');
        $get_friends_notification = $this->friends_model->get_friends_alert_by_ID($id);
        if(isset($get_friends_notification) && !empty($get_friends_notification))
        {
?>
            <div id="test" style="width:200px; height:auto; border:1px solid red;">
                <h3>Friend invitation from:</h3>
        <?php
                foreach($get_friends_notification as $key => $value)
                {
                    $new_id =   $get_friends_notification[$key] = $value["FrieInviter"];
                    $new_name = $get_friends_notification[$key] = $value["UserName"];

                    echo '<a href="'.base_url().'profile/get_user_data/'.$new_id.'">'.$new_name.'</a><br />';
                }
        ?>
            </div>
    <?php
        }

然后它只在div#responsecontainer中显示它也可以正常工作。

$("#responsecontainer").html(response);

在文件&#39; test&#39;我正在检查数据库是否有任何更新。 所以我从DB中提取信息并返回#responsecontainer。因为它每5秒运行一次,在它第一次运行之后,我想抓住我拉的最后一个ID,然后再次运行并将其保存在变量中,然后我想将该ID传递给&#39;测试&#39;或以不同方式处理。基本上我希望能够使用它。我怎么能这样做?

实施例: ajax检查test.php文件并找到5行。返回带有5个ID的这5行。最后一个ID是数字5.在此期间,还插入了一些其他行,以便下次找到更多行。 在再次检查之前,我想告诉它不要检查ID 1,2,3,4,5但是从ID 6开始。

此方法如何与数据库连接一起使用?假设我有500个用户,并且在他们所有的配置文件中,检查会每5秒运行一次就不会杀死数据库连接吗?

1 个答案:

答案 0 :(得分:0)

基本上你需要在这里添加一个分页效果。例如,在ajax请求中传递参数:如果一次获得5条记录, 然后初始化变量说 current_page = 0,通过ajax

递增相同的值
    var current_page=0;
function load() {
    var test = "<?php echo $test; ?>/";
    $.ajax({ //create an ajax request to load_page.php
        type: "GET",
        url: test,
        data : current_page
        dataType: "html", //expect html to be returned    
        contentType: "text/html",            
        success: function (response) {
            if(response.length!==0){
                $("#responsecontainer").html(response);
                current_page+=1;
            }
            setTimeout(load, 5000)
        }
    });
}
在php页面中

进行必要的更改(希望你知道如何完成分页)。