כדי לארגן תקשורת אינטראקטיבית בין מבקר לאתר (או ליתר דיוק, דפדפן עם שרת אינטרנט), על המתכנת לספק תרחישים להחלפת נתונים ביניהם. בואו ניקח בחשבון מספר אפשרויות פשוטות לארגון העברת המשתנים מתסריט JavaScrip של הלקוח לתסריט PHP של השרת ולהיפך.
זה הכרחי
ידע בסיסי בשפות PHP, JavaScript ו- HTML
הוראות
שלב 1
בשלב היווצרות העמודים, לא קשה להעביר משתנה יחד עם ערכו מסקריפט php לסקריפט JavaScript. סקריפט ה- PHP עצמו מייצר את קוד ה- HTML של הדף המבוקש, כולל הסקריפטים שהוא מכיל. המשמעות היא שהוא יכול לכתוב כל משתנה לקוד JavaScript שיש להעביר יחד עם הערכים שלהם. לדוגמה, סקריפט php זה יעביר לסקריפט הלקוח משתנה בשם "serverTime" המכיל את זמן השרת הנוכחי בפורמט HOUR: MINUTE:
<? php
$ JSvarName = 'serverTime';
$ JSvarValue = תאריך ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
הדפס ''. $ JScode.'alert ("ובשרת עכשיו" + '. $ JSvarName.'); '
?>
שלב 2
הדרך הפשוטה ביותר להעביר שמות וערכים של משתנים בכיוון ההפוך (מסקריפט JS בדפדפן הלקוח לתסריט PHP בשרת האינטרנט) יכולה להיראות כך בקוד ה- HTML של הדף:
var now = תאריך חדש ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
סקריפט זה ישלח לסקריפט test2.php את שם המשתנה "clientTime" והערך שלו המכיל את זמן המחשב הנוכחי באותו פורמט HOUR: MINUTE. שיטה זו להעברת נתונים נקראת "סינכרוני" - היא תביא לטעינה מיידית של הדף. ליתר דיוק, במקום הדף הנוכחי, התוצאה של סקריפט test2.php תועלה לדפדפן. הקוד עבור סקריפט PHP זה עשוי להיראות כך:
<? php
אם ($ _ GET) מהדהד 'משתנה שהתקבל'. מקש ($ _ GET). '='. $ _ GET [key ($ _ GET)];
?>
אתה יכול לשלב את כל שלושת החלקים הנחשבים בקוד להעברת משתנים מהשרת לדפדפן ובחזרה לקובץ php אחד כזה:
<? php
אם ($ _ GET) מהדהד 'משתנה שהתקבל'. מקש ($ _ GET). '='. $ _ GET [key ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = תאריך ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
הדפס ''. $ JScode.'alert ("ובשרת עכשיו" + '. $ JSvarName.'); '
?>
פונקציה sendData () {
var now = תאריך חדש ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
להחזיר כוזב;
}
שלח נתונים לשרת בסקריפט משולב זה (PHP + JavaScript), קוד ה- php יפיק קוד JavaScript על ידי "העברת" משתנה בשם "serverTime" עם ערך המכיל את זמן השרת הנוכחי. כאשר העמוד נטען לדפדפן, סקריפט JavaScript יציג הודעה עם הזמן הזה. לאחר מכן המשתמש לוחץ על הקישור "שלח נתונים לשרת" יפעיל את הפונקציה sendData (), שתשלח בקשת GET לשרת ותעביר את שם המשתנה ("clientTime") ואת הערך שלו (זמן לקוח) ל- php תַסרִיט. סקריפט php, לאחר שקרא את השם והערך של משתנה ממערך $ _GET העל הגלובלי, ידפיס אותו ויתחיל את כל התסריט המתואר שוב.
שלב 3
כל מה שתואר לעיל מיישם את התרחיש של העברת נתונים "סינכרונית". ליישום השיטה "אסינכרונית" להחלפת נתונים בין סקריפטים של לקוחות לשרתים יש שם משלה AJAX (Javascript Asynchronous ו- XML). נושא זה ראוי למאמר נפרד.