我从一个页面发送了许多动态post id,并且php服务器端页面(server.php)使用这些id进行查询,以在mysql中找出新添加的数据。
如果在mysql中未找到任何新添加的数据,它将返回undefined
值。所以我添加了这个if (msg.id !== undefined && msg.detail !== undefined && msg.name !== undefined) { //do here }
来隐藏undefined。
但是在添加上面一行之后,我的脚本隐藏了undefined
值,但仅返回第一个CID新添加的值。
这意味着如果CID向php发送了ID(100,101,102,103等),它只返回100个id新添加的值并附加它。
所以没有使用上面的方法,有没有其他方式到PHP服务器端删除未定义的值?
NB 如果没有上面的行,它会很好地返回所有CID的值,但如果没有找到新添加的数据,则返回undefined
值时间间隔,所以我需要停止返回{ {1}}。
我的javascript:
undefined
server.php
var CID = []; // Get all dynamic ids of posts (works well)
$('div[data-post-id]').each(function(i){
CID[i] = $(this).data('post-id');
});
function addrep(type, msg){
CID.forEach(function(id){
if (msg.id !== undefined && msg.detail !== undefined && msg.name !== undefined) {
$("#newreply"+id).append("<div class='"+ type +""+ msg.id +"'><ul><div class='newkochi'>"+ msg.name +"</div><div class='cdomment_text'>"+ msg.detail +"</ul></div>");
}
});
}
function waitForRep(){
$.ajax({
type: "GET",
url: "server.php",
cache: false,
data: {CID : CID},
timeout:15000,
success: function(data){
addrep("postreply", data);
setTimeout(waitForRep, 15000 );
},
error: function(XMLHttpRequest, textStatus, errorThrown){
setTimeout(waitForRep, 15000); }
});
}
$(document).ready(function(){
waitForRep();
});
答案 0 :(得分:0)
您正在覆盖您的价值
while($rows = mysqli_fetch_assoc($res)){
$data[] = $rows;
}
您需要做的就是填充$data
。 $data[]=$rows;
告诉PHP将$rows
附加到数组$data
。如果您需要更改数据,请在执行追加之前修改$rows
。