ציטוט:
נכתב במקור על ידי Shay Falador
אהלן!
דבר ראשון בשביל לעשות את זה תיהיה חייב להפריד את קטע הקוד מהעמוד. במילים אחרות תפריד את כל מה שבתוך הDIV לעמוד PHP אחר. לאחר מכן תוכל להריץ קטע AJAX ולהחליף את תוכן הDIV הנוכחי בתוכן המתעדכן.
קטע הAJAX שהצגת לא נכון. אני ממליץ לך להשתמש בjQuery, הAJAX שם פשוט ביותר.
בהצלחה!
|
להגיד לו להשתמש בJQuery לא יעזור לו.
הצעה שיש לי לתת לך, תתחיל להשתמש בtry וcatch כדי לדבג את הסקריפטים שלך.
למשל, את הפונקציה שכתבת "Ajax" יכלת לעטוף בtry ואז בקטע קוד של הcatch לכתוב alert(exception).
אוקי, בנוגע לשגיאות שיש לך בסקריפט, אני כבר שמתי לב שיש לך שגיאה בתחביר מאחר וחסר לך סוגר מסולסל אחד בסוף ('}').
עוד משהו, כשכתבת את קטע הקוד הבא:
קוד:
window.onload = function ()
{
setTimeout( 'Ajax()', 4000 ) ;
}
אתה הכללת אותו בתוך הפונקציה Ajax, פונקציה שלמעשה לעולם לא נקראה בסקריפט שלך.
עוד משהו מאוד חשוב, כשיצרת את האובייקט שאמור ליצור את ההתקשרות עם השרת עצמו, אתה שכחת בעצם ליצור את הבקשה להתקשרות, ולשלוח אותה.
כתבתי קוד עם תיקונים וקצת הערות, לא בדקתי ככה שאני לא יודע אם עובד.
אם לא עובד תכתוב פה את הבעיה ואני אנסה לעזור.
קוד:
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( 4 == xmlHttp.readyState )
{
// ארעה שגיאה בשליחת הבקשה לשרת
if( 404 == xmlHttp.status )
{
throw 'ארעה שגיאה בשליחת בקשה לשרת. קוד השגיאה: '+xmlHttp.status+"\n"+xmlHttp.statusText;
}
else
{
document.getElementByID( 'loadPeriodical' ).innerHTML = xmlHttp.responseText ;
setTimeout( 'Ajax()', 4000 ) ;
}
}
}
//-----------------------------------------------
// בקטע זה אנחנו שולחים בקשה לשרת ומכוונים אותו
// לדף בשם 'ServerResponse.php' שנמצא באותה תיקייה
// בה נמצא דף התצוגה של האתר.
//-----------------------------------------------
xmlHttp.open( 'GET', 'ServerResponse.php', true ) ;
xmlHttp.send(null) ;
}
window.onload = function ()
{
try
{
setTimeout( 'Ajax()', 4000 ) ;
}
catch( exception )
{
alert( exception.toString() ) ;
}
}