שלום,
לאחר חיפושים רבים בגוגל עם מילות המפתח :"refresh ajax div" ו "ajax refresh time" וכו'.
לא מצאתי את מה שחיפשתי... ולכן אני פותח כאן את האשכול הנ"ל.
אז, יש ברשותי DIV שמתרענן כל 3 דק' לבד, אבל בכדי לראות את הרענון - אתה צריך ללחוץ F5 (רענן). אני מעוניין לעשות כך שלא אצטרך ללחוץ F5 על מנת לרענן, כלומר, כל חצי דקה יהיה רענון אוטומתי אך ורק לDIV הזה בעזרת AJAX. במידה ויש שינוי - ישתנה. במידה ואין שינוי - אין שינוי. אבל כל חצי דקה יהיה רענון של AJAX.
הנה ה-DIV שלי שאני רוצה שיתרענן כל חצי דקה:
קוד:
<div id="loadPeriodical" class="box periodical"><table border="0" dir="ltr" align="center" width="95%" cellspacing="0" cellpadding="4">
<tr bgcolor="#0D0D0D">
<td colspan="2" nowrap align="left">
<p><font face="Arial, Helvetica, sans-serif" size="1" color="#FFFFFF"><b>Now:</b></font>
</td>
<td nowrap align="Right">
<p><font face="Arial, Helvetica, sans-serif" size="1" color="#FFFFFF"><b>Time</b></font>
</td>
</tr>
<?
$rc=0;
PutSongRow($song);
$mainsong = $song;
?>
<?
if(count($queue)>0){?>
<tr bgcolor="#666666"><td colspan="7" dir="rtl">
<center><b><font size="2" color="#000000">???:</font></b>
<font size="2" color="003366"><b>
<?
$i=0;
while(list($key, $song) = each($queue))
{
if(empty($song["artist"]))
$song["artist"] = 'Unknown';
if($i>0) echo ", ";
echo $song["artist"];
if($song["requestid"]!=0)
{ echo " ~בקשה~"; }
$i++;
}
?>
</b></font></center></td></tr>
<?}?>
<tr bgcolor="#0D0D0D">
<td colspan="7" nowrap>
<p align="left"><font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#FFFFFF">Recently
played songs:</font>
</td>
</tr>
<?
$rc=0;
while(list($key, $song) = each($history))
PutSongRow($song);
?>
</table><br></div>
</div></div>
קרוב לוודאי, שאתם לא מבינים מה הDIV הזה עושה, ולכן אסביר בקצרה, למרות שזה לא כל-כך חשוב ולא המטרה. מטרת הדיב היא להציג את השירים שנוגנו, כלומר ברגע שנוגן עוד שיר, ניתן לראות זאת אך ורק ע"י F5 - ואני רוצה ע"י AJAX. חשוב לציין שה-DIV עובד ופועל כראוי.
ניסיתי גם להכניס את הקוד הזה לפני ה-DIV אך עדיין לא עובד:
קוד:
<script type="text/javascript">
function Ajax(){
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("No AJAX!?");
return false;
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4){
document.getElementByID('loadPeriodical').innerHTML=xmlHttp.responseText;
setTimeout('Ajax()',4000);
}
}
window.onload=function(){
setTimeout('Ajax()',4000);
}
</script>
איך אני אמור לעשות רפרש לדיב הזה עם AJAX?
תודה מראש,