Php 如何在中使用.html来显示多个记录
我使用下面的代码通过ajax、jquery、php和json获取成员列表及其信息。 唯一的问题是当我使用.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
<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: "+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: "+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: "+updated+"</i></span>");
}//end of for
$('#member_friends').html(html.join(''));
var输出=[];
var html=[]
对于(变量i=0,len=data.length;i
代码上的缩进是怎么回事?很难阅读…很抱歉,我是从我的编辑那里抄来的,由于某种原因,它被搞砸了,很可能是重复的