Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在中使用.html来显示多个记录_Php_Jquery_Ajax_Json - Fatal编程技术网

Php 如何在中使用.html来显示多个记录

Php 如何在中使用.html来显示多个记录,php,jquery,ajax,json,Php,Jquery,Ajax,Json,我使用下面的代码通过ajax、jquery、php和json获取成员列表及其信息。 唯一的问题是当我使用.html时,它只显示第一条记录,而不显示所有记录。完全糊涂了 <script type="text/javascript"> $( document ).delegate("#member_home", "pagecreate", function() { var refreshId = setInterval(function(){ var friend

我使用下面的代码通过ajax、jquery、php和json获取成员列表及其信息。 唯一的问题是当我使用.html时,它只显示第一条记录,而不显示所有记录。完全糊涂了

<script type="text/javascript">
$( document ).delegate("#member_home", "pagecreate", function() {
    var refreshId = setInterval(function(){
        var friends= new Array();
        $.ajaxSetup({cache: false})
        $.ajax({
            url:'http://www.l.example.com/app/scrip/friends_lookup.php',
            data: "",
            dataType: 'json',
            success: function(data){
                $.each(data, function(key, val) {
                    var friend = val['friend'];
                    var phone = val['phone'];
                    var status = val['status'];
                    var email = val['email'];
                    var updated = val['updated'];  
                    $('#member_friends').append("<div class='member-box'>"+friend+"<span class='status-pic1'><img src='images/"+status+".png' width='40' height='40'/></span><span class='phone_box'><a href='tel:"+phone+"'><img src='images/icons/phone.png' width='40' height='40' /></a></span><span class='email-box'><a href='mailto:"+email+"'><img src='images/mail.png' width='40' height='40' /></a></span><div class='clear'></div><span class='update-status'><i>last update:&nbsp;"+updated+"</i></span>");

                });                                             
            }                                                 
        });
    }, 1500);
});

</script>

$(文档).delegate(“#成员_home”,“页面创建”,函数(){
var refreshId=setInterval(函数(){
var friends=新数组();
$.ajaxSetup({cache:false})
$.ajax({
网址:'http://www.l.example.com/app/scrip/friends_lookup.php',
数据:“,
数据类型:“json”,
成功:功能(数据){
$。每个(数据、函数(键、值){
var friend=val['friend'];
var phone=val['phone'];
var status=val['status'];
var email=val['email'];
var updated=val['updated'];
$(“#成员_朋友”)。追加(“+friend+”上次更新:“+updated+”);
});                                             
}                                                 
});
}, 1500);
});
我试过这个,但没用:

<script type="text/javascript">
$( document ).delegate("#member_home", "pagecreate", function() {
    var refreshId = setInterval(function() {                                            
        var friends= new Array();
        $.ajaxSetup({cache: false})
        $.ajax({
            url: 'http://www.l.example.com/pp/scripts/friends_lookup.php',
            data: "",
            dataType: 'json',
            success: function(data){
                var output = [];
                for (var i = 0, len = data.length; i < len; i++) {
                    output[output.length] = {
                        friend  : data[i].friend,
                        phone   : data[i].phone,
                        status  : data[i].status,
                        email   : data[i].email,
                        updated : data[i].updated
                    };                                                  

                    $('#member_friends').html("<div class='member-box'>"+friend+"<span class='status-pic1'><img src='images/"+status+".png' width='40' height='40'/></span><span class='phone_box'><a href='tel:"+phone+"'><img src='images/icons/phone.png' width='40' height='40' /></a></span><span class='email-box'><a href='mailto:"+email+"'><img src='images/mail.png' width='40' height='40' /></a></span><div class='clear'></div><span class='update-status'><i>last update:&nbsp;"+updated+"</i></span>");
                }
            }
        });                                        
    }, 1500);
});
</script>

$(文档).delegate(“#成员_home”,“页面创建”,函数(){
var refreshId=setInterval(函数(){
var friends=新数组();
$.ajaxSetup({cache:false})
$.ajax({
网址:'http://www.l.example.com/pp/scripts/friends_lookup.php',
数据:“,
数据类型:“json”,
成功:功能(数据){
var输出=[];
对于(变量i=0,len=data.length;i
您在对
$的每次迭代中的值进行过度写入。每次循环都是如此。在循环之前,创建一个数组来存储数据,然后在每次迭代中添加到数组中:

$.ajax({
    success : function (data) {
        var output = [];
        for (var i = 0, len = data.length; i < len; i++) {
            output[output.length] = {
                friend  : data[i].friend,
                phone   : data[i].phone,
                status  : data[i].status,
                email   : data[i].email,
                updated : data[i].updated
            };
        }
        //you now have an array of objects that each contain a set of information
    }
});
$.ajax({
成功:功能(数据){
var输出=[];
对于(变量i=0,len=data.length;i
我使用的
for
循环非常快,这里有一个JSPerf来显示使用
$后性能的提高。each()


另外,您可能已经注意到我使用了
output[output.length]=…
而不是
output.push(…)
。前者在旧浏览器中执行得更快(后者在现代浏览器中执行得更快),我倾向于帮助旧浏览器,因为它们确实需要帮助。

我想你的问题是,当你在循环中使用.html()时,对于每一次迭代,它都会用上一次迭代中添加的.html()替换所有内容。但是,从逻辑上讲,这只会留下最后一条记录,而不是第一条记录。

在循环后必须调用.html(),目前它将替换#member_friends的内容 在每个循环迭代中,您将始终看到最后一项

这应该是解决办法:

var output = [];
var html = []
for (var i = 0, len = data.length; i < len; i++) {
    output[output.length] = {
        friend  : data[i].friend,
        phone   : data[i].phone,
        status  : data[i].status,
        email   : data[i].email,
        updated : data[i].updated
    };                                                  

    html.push("<div class='member-box'>"+friend+"<span class='status-pic1'><img src='images/"+status+".png' width='40' height='40'/></span><span class='phone_box'><a href='tel:"+phone+"'><img src='images/icons/phone.png' width='40' height='40' /></a></span><span class='email-box'><a href='mailto:"+email+"'><img src='images/mail.png' width='40' height='40' /></a></span><div class='clear'></div><span class='update-status'><i>last update:&nbsp;"+updated+"</i></span>");
}//end of for
$('#member_friends').html(html.join(''));
var输出=[];
var html=[]
对于(变量i=0,len=data.length;i
代码上的缩进是怎么回事?很难阅读…很抱歉,我是从我的编辑那里抄来的,由于某种原因,它被搞砸了,很可能是重复的