使用AJAX实时从数据库中获取数据

时间:2015-03-11 13:03:57

标签: javascript

我正在尝试从数据库中实时获取数据,但遇到问题,java脚本没有运行,我已多次尝试过,并在stackoverflow中搜索我的特定代码类型的答案但是失败了

一个简单的fetch.php

<?php
       include_once('db.php');

       $sql = "SELECT * FROM people";
       $res = mysql_query($sql);
       $result = array();

       while( $row = mysql_fetch_array($res) )
           array_push($result, array('name' => $row[0],
                                     'age' => $row[1],
                                     'company' => $row[2]));
       echo json_encode(array("result" => $result));
?>

和my_script.js

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

function done() {
      setTimeout( function()  {
      updates(); 
      done();
      }, 200);
}

funtion updates() {
     $.getJSON("fetch.php", function(data) {
        $("ul").empty();

        $.each(data.result, function() {

         $("ul").append("<li>Name: "+this['name']+"</li><li>Age: "+this['age']+"</li><li>Company: "+this['company']+"</li><br />");

         });

     });
     }

从数据库收到的数据根本没有显示,只有当它被刷新并且来自数据库的数据没有进入正确的表格格式,即使在脚本中使用它之后,我已经建立了正确的数据库连接但是我刚才没有提到它,因为它非常简单,因为我收到的数据不是正确的格式而不是实时的。

谢谢。

1 个答案:

答案 0 :(得分:0)

我更喜欢使用纯粹的ajax。另外请不要使用计时器,搜索ajax同步器。无论如何,如果这不起作用,您需要发布数据库结构。

<强> fetch.php

<?php
       include_once('db.php');
       $sql = "SELECT * FROM people";
       $res = mysql_query($sql);
       $result = array();
       $rs = mysql_query("SELECT * FROM people");
       while($obj = mysql_fetch_object($rs)) {
       $result[] = $obj;
       }
       echo $_GET['callback'] . '{"result":'.json_encode($result).'}';
?>

<强> JS

  $.ajax({
      url: 'fetch.php',
      type: 'GET',
      dataType: 'json',

   success: function(data) {
      for (var x = 0; x < data.result.length; x++) {
          $("ul").append("<li>Name: "+ data.result.name[x] +"</li><li>Age: "+ data.result.age[x] +"</li><li>Company: "+ data.result.company[x] +"</li><br />");
      }
   },
   error: function () { alert('error'); },
   });