Javascript 我能';t实时更新数据

Javascript 我能';t实时更新数据,javascript,php,jquery,sql,ajax,Javascript,Php,Jquery,Sql,Ajax,这是我的密码 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></scrip

这是我的密码

<!DOCTYPE html>
<html>
<head>



<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>  
<meta charset=utf-8 />
<script type="text/javascript">
function repeatAjax(){
$.ajax({
          type: "POST",
          url: 'getdata.php',
          dataType: 'json',
          success: function(resp) {

                    $('#name').html(resp[0]);


          },
          complete: function() {
                setTimeout(repeatAjax,500); 
             }
        });
}
</script>
</head>
<body>
 <center>
                        <h1>List</h1>

            <div id="name" name="name"></div>  

</center>
</body>
</html>

函数repeatAjax(){
$.ajax({
类型:“POST”,
url:'getdata.php',
数据类型:“json”,
成功:功能(resp){
$('#name').html(resp[0]);
},
完成:函数(){
setTimeout(repeatAjax,500);
}
});
}
列表
这个结果没有显示任何东西

这是我的getdata.php

<?php
mysql_query("SET NAMEs UTF8"); 
    $objConnect = mysql_connect("localhost","root","") or die(mysql_error());
    mysql_query("SET NAMEs UTF8"); 
    $objDB = mysql_select_db("member");
    $strSQL = "    SELECT * FROM mem2 order by date limit 1,1";
    $objQuery = mysql_query($strSQL) or die (mysql_error());
    $intNumField = mysql_num_fields($objQuery);
    $result = array();
    $arrCol = array();


    while($obResult = mysql_fetch_array($objQuery))
    {

        for($i=0;$i<$intNumField;$i++)
        {
            $arrCol[mysql_field_name($objQuery,$i)] = $obResult[$i]; 
        }
        array_push($result,$arrCol);
    }


    $response = json_encode($result);
    echo json_encode($result);

mysql_close($objConnect);
?>

这个结果呢

我不知道我做错了什么


谢谢你

不用再复杂了,在你的PHP中:

$response = json_encode($result);
echo json_encode($result);

// this doesn't make sense
只要把它们圈起来,正常地推进去就行了

$result = array();
while($obResult = mysql_fetch_assoc($objQuery)){
    $result[] = $obResult;
}

echo json_encode($result);
exit;
在JS中,首先循环响应:

success: function(response) {

    var results = '';
    $.each(response, function(index, element){
        // build the markup first, don't feed the response into .html() directly
        results += '<p>' + element.id1 + '</p>';
        results += '<p>' + element.name1 + '</p>';
        results += '<p>' + element.date + '</p>';
    });    

    $('#name').html(results); // after the markup is complete, then use this
},
成功:功能(响应){
var结果=“”;
$。每个(响应、函数(索引、元素){
//首先构建标记,不要直接将响应馈送到.html()中
结果+=''+element.id1+'

'; 结果+=''+element.name1+'

'; 结果+=''+element.date+'

'; }); $('#name').html(results);//标记完成后,使用 },
注意:使用改进的扩展名mysqli或使用PDO。请尝试以下操作:

function repeatAjax(){
    $.ajax({
      type: "POST",
      url: 'getdata.php',
      dataType: 'json',
      success: function(resp) {
          $('#name').html(resp[0]);
      }
    });
}

setInterval(repeatAjax,500);

希望这有帮助。如果您仍然没有得到任何回复,请尝试控制台日志记录
resp
,看看您是否确实从php文件中得到了一些响应。

resp[0]
是根据您的图像生成的数组。您真正想要的是
resp[0][“id1”]
Up投票,因为您指出OP当前的php脚本过于复杂,并提供了一个简单(更可行)的解决方案@Darren是的,这有点奇怪,必须获取行,然后循环字段并使用encode twice谢谢你太好了^^@ahahahahaha当然很高兴它能帮上忙谢谢你的回答现在我删除了完整的函数并添加了setinterval,你的建议和它的工作很高兴我能帮上忙D