Az interaktív kommunikáció megszervezéséhez a látogató és egy weboldal (vagy inkább egy webszerverrel rendelkező böngésző) között a programozónak forgatókönyveket kell biztosítania a közöttük zajló adatcserére. Vizsgáljunk meg néhány egyszerű lehetőséget a változók átadásának megszervezésére az ügyfél JavaScrip parancsfájlból a szerver PHP szkriptjébe és fordítva.
Szükséges
Alapvető ismeretek a PHP, a JavaScript és a HTML nyelvekről
Utasítás
1. lépés
Az oldalképzés szakaszában nem nehéz egy változót annak értékével együtt átvinni egy php parancsfájlból egy JavaScript szkriptbe. A PHP szkript maga generálja a kért oldal HTML kódját, beleértve az abban található szkripteket is. Ez azt jelenti, hogy bármilyen változót beírhat a JavaScript-kódba, amelyet át kell adni az értékeikkel együtt. Például ez a php parancsfájl egy "serverTime" nevű változót ad át az ügyfélszkriptnek, amely az aktuális szerver időt HOUR: MINUTE formátumban tartalmazza:
<? php
$ JSvarName = 'serverTime';
$ JSvarValue = dátum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("És most a szerveren" + '. $ JSvarName.'); '
?>
2. lépés
A változók nevének és értékének ellentétes irányba történő továbbításának legegyszerűbb módja (az ügyfél böngészőjében lévő JS szkriptből a webszerver PHP szkriptjébe) így nézhet ki az oldal HTML kódjában:
var now = új dátum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
Ez a szkript elküldi a test2.php parancsfájlnak a "clientTime" változó nevét és annak értékét, amely tartalmazza az aktuális számítógépes időt ugyanabban a formátumban HOUR: MINUTE. Ezt az adatátviteli módszert "szinkronnak" nevezik - ez az oldal azonnali újratöltését eredményezi. Pontosabban, az aktuális oldal helyett a test2.php parancsfájl eredménye kerül betöltésre a böngészőbe. Ennek a php szkriptnek a kódja így nézhet ki:
<? php
if ($ _ GET) echo 'Received változó'.key ($ _ GET). '='. $ _ GET [kulcs ($ _ GET)];
?>
Kombinálhatja a kód mindhárom figyelembe vett részét a változók átadásához a szerverről a böngészőbe és vissza egy ilyen php fájlba:
<? php
if ($ _ GET) echo 'Received változó'.key ($ _ GET). '='. $ _ GET [kulcs ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = dátum ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
print ''. $ JScode.'alert ("És most a szerveren" + '. $ JSvarName.'); '
?>
függvény sendData () {
var now = új dátum ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
return false;
}
Adatok küldése a szerverre Ebben a kombinált (PHP + JavaScript) szkriptben a php-kód a JavaScript-kódot úgy generálja, hogy a "serverTime" nevű változót "átadja" az aktuális szerver-időt tartalmazó értéknek. Amikor az oldal betöltődik a böngészőbe, a JavaScript szkript ezzel az idővel üzenetet jelenít meg. Ezután a felhasználó az "Adatok küldése a szerverre" linkre kattintva elindítja a sendData () függvényt, amely egy GET kérést küld a szervernek, a változó nevét ("clientTime") és annak értékét (kliens ideje) átadva a php-nek. forgatókönyv. Egy php szkript, miután elolvasta egy változó nevét és értékét a $ _GET superglobal tömbből, kinyomtatja és újraindítja a teljes leírt szkriptet.
3. lépés
A fentiekben leírtak minden megvalósítja a "szinkron" adatátvitel forgatókönyvét. A kliens és szerver szkriptek közötti adatcsere "aszinkron" módszerének megvalósításának saját neve AJAX (aszinkron Javascript és XML). Ez a téma külön cikket érdemel.