Я занимаюсь блогами с PHP, AJAX, MySQL и т. Д. Как обычно, каждый пост имеет свой идентификатор, а внутри сообщений вы можете видеть комментарии.Как я могу постоянно обновлять отдельный div, сохраняющий идентификатор сообщения?
То, что я пытаюсь сделать, это обновить комментарий div
-х, вызвав comments.php
документ с AJAX и положить его в div
с $('#comments').html(data);
.
Делать это каждые 5 секунд для поддержания комментариев, как в режиме реального времени, но проблема в том, что, когда div
делает первый освежающий, то div
теряет идентификатор пост и сказать, что это undefined
.
Как я могу обновить любой номер div
без потери идентификатора сообщения?
Если я вызываю файл comments.php
с типичным include(file.php)
внутри почтового файла, у меня нет проблем, но, используя этот способ, я просто не могу обновить содержимое.
Вот код:
post.php:
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
url: 'support/comments.php',
success: function(data) {
$('#comments').html(data);
}
});
});
</script>
div
где будет результат будет показано:
<div id="comments">
</div>
Скрипт для обновления div
:
<script language="Javascript" type="text/javascript">
function refreshDivs(divid, secs, url) {
// define our vars
var divid,secs,url,fetch_unix_timestamp;
// The XMLHttpRequest object
var xmlHttp;
try {
xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
} catch (e) {
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
} catch (e) {
try {
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
alert("your browser doesn't support ajax.");
return false;
}
}
}
// Timestamp para evitar que se cachee el array GET
fetch_unix_timestamp = function() {
return parseInt(new Date().getTime().toString().substring(0, 10))
}
var timestamp = fetch_unix_timestamp();
var nocacheurl = url+"?t="+timestamp;
// the ajax call
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == 4 && xmlHttp.status == 200) {
document.getElementById(divid).innerHTML=xmlHttp.responseText;
setTimeout(function(){refreshDivs(divid,secs,url);},secs*1000);
}
}
xmlHttp.open("GET",nocacheurl,true);
xmlHttp.send(null);
}
window.onload = function startrefresh() {
//update content on real time
refreshDivs('comments',10,'support/comments.php');
}
</script>
Что такое refreshDivs? – user2182349
* update * его содержимое – kukiko11