在php中使用ajax获取数据

时间:2016-10-08 12:59:08

标签: php ajax

我的数据库中有两个表,第一个是id,另一个是文本。

我可以像这样从db获取数据

这是index.php文件

void complement(unsigned char *c, int n){
  while(*c!='\0'){
    printf("%d\n", n-(*c));
    c++;
  }
}

如果插入了新项目,我需要每五秒检查一次数据库。 我在下面使用这个代码。但它不起作用。我不知道出了什么问题?能否提前帮助并提前感谢

ajax.js文件

<?php include "config.php"?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">

    <title>Title</title>
    <script type="text/javascript" src="http://code.jquery.com/jquery-3.1.1.min.js"></script>
    <script type="text/javascript" src="ajax.js"></script>
</head>
<body>

<ul>

    <?php
    $result = $db->query("select * from veri ORDER  BY id DESC ");
    while ($row = $result->fetch_object()) {
      echo '<li id="'.$row->id.'">'.$row->text.'</li>';
    }


    ?>
</ul>

</body>
</html>

这个ajax.php文件

$(function () {

    $ajaxLoad = function () {

        var lastid = $("ul li:first").attr("id");

        $.ajax({
            type: "post",
            url: "ajax.php",
            data: {"lastid": lastid},
            dataType: "json",
            success: function (result) {
                if (result.error) {
                    $("#result").html(result);

                }
                else{
                    $("ul").prepend(result.data);
                }
            }

        });
    }
    setInterval("ajaxLoad()",5000);

});

1 个答案:

答案 0 :(得分:1)

您的linear layout接受回调函数作为第一个参数。你传了一个字符串。它应该是:

setInverval()

另外,从setInterval(ajaxLoad, 5000); 定义中删除$。它是JavaScript,而不是PHP。如果您希望将$ajaxLoad添加到变量之前,还必须使用该变量以及$,如下所示:

$

然而,这绝对是糟糕的做法,因为您会对使用PHP或JS感到困惑。

这里你也犯了一个错误。根据当前代码,您可能只获取插入的最后一条记录而不是所有新插入的记录,因为您没有连接记录。这是解决它的一种方法:

$variable = 5;
console.log($variable); // prints 5 to the console