我有一个打印许多回复框的ajax页面。
每隔几秒我就得到另一个带有回复ID和“最后回复日期”的ajax数组。我想在这个数组(“res”)上运行循环,它会找到类“lastReplyDate”的所有范围,并用我从数组中收到的数据替换常量
响应:
SELECT SUBSTRING([TURFS],
1,
CASE WHEN CHARINDEX(',', [TURFS]) > 0
THEN CHARINDEX(',', [TURFS]) - 1
ELSE LEN([TURFS])
END)
JS
while($mainIndex = mysql_fetch_array($mainQuery))
$chatTopics[] = array('id' => $mainIndex['id'], 'statusID' => $mainIndex['statusID'], 'createDate' => $mainIndex['lastReplyDate']);
echo json_encode($chatTopics);
HTML示例:
function refreshStatuses()
{
var lastRefreshReplies = $('#lastRefreshReplies').val();
var data = 'lastRefreshReplies=' + lastRefreshReplies;
var data = data + "&act=refreshStatuses";
$.ajax({
type: "POST",
url: "ajax/chatsAjax.php",
data: data,
cache: false,
dataType: 'json',
success: function(res){
console.log(res);
var elems = $('#chatLists li.replyBox');
for (var i=0; i<res.length; i++) {
$( "#chatLists li.replyBox id" data-ref = res[i]['id']).find("span.replyStatus").toggleClass('chatStatusColor_noAssign chatStatusColor_hd');;
}
$( "#lastRefreshReplies" ).val(getTimestamp());
}
});
setTimeout('refreshStatuses()', 10000); //10 seconds
}
答案 0 :(得分:0)
这是不正确的setTimeout(&#39; refreshStatuses()&#39;,10000); 把settimeout放在你的功能之外
function refreshStatuses()
{
var lastRefreshReplies = $('#lastRefreshReplies').val();
var data = 'lastRefreshReplies=' + lastRefreshReplies;
var data = data + "&act=refreshStatuses";
$.ajax({
type: "POST",
url: "ajax/chatsAjax.php",
data: data,
cache: false,
dataType: 'json',
success: function(res){
console.log(res);
var elems = $('#chatLists li.replyBox');
for (var i=0; i<res.length; i++) {
$( "#chatLists li.replyBox id" data-ref = res[i]['id']).find("span.replyStatus").toggleClass('chatStatusColor_noAssign chatStatusColor_hd');;
}
$( "#lastRefreshReplies" ).val(getTimestamp());
}
});
}
setTimeout(refreshStatuses(), 10000); //10 seconds