Ich mache einen Blog mit PHP, AJAX, MySQL, usw. Wie üblich, hat jeder Beitrag seine ID und in den Beiträgen können Sie die Kommentare sehen.Wie kann ich ständig ein individuelles div aktualisieren, das die ID des Posts erhält?
Was ich versuche ist, den Kommentar der refresh div
durch das comments.php
Dokument mit AJAX Aufruf und es in den div
mit $('#comments').html(data);
setzen.
tun dies alle 5 Sekunden für die Aufrechterhaltung der Kommentare wie in Echtzeit, aber das Problem ist, dass, wenn die div
die erste Auffrischung tut, die div
die ID des Post verliert und sagen, dass undefined
ist. Wie kann ich div
aktualisieren, ohne die ID des Posts zu verlieren?
Wenn ich die comments.php
Datei mit der typischen include(file.php)
innerhalb der Post-Datei aufrufen, habe ich kein Problem, aber auf diese Weise kann ich nur nicht den Inhalt aktualisieren.
Hier ist der Code:
post.php:
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
url: 'support/comments.php',
success: function(data) {
$('#comments').html(data);
}
});
});
</script>
div
wo das Ergebnis zeigt, werden wird:
<div id="comments">
</div>
Script zum Auffrischen der 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>
Was ist refreshDivs bekommen kann? – user2182349
* update * seinen Inhalt – kukiko11