Kuinka Välittää Muuttuja

Kuinka Välittää Muuttuja
Kuinka Välittää Muuttuja

Sisällysluettelo:

Järjestääkseen vuorovaikutteisen viestinnän kävijän ja verkkosivuston (tai pikemminkin selaimen, jolla on verkkopalvelin) välillä, ohjelmoijan on tarjottava skenaarioita tietojen vaihdolle heidän välillä. Harkitaan useita yksinkertaisia vaihtoehtoja muuttujien siirron järjestämiseksi asiakkaan JavaScrip-komentotiedostosta palvelimen PHP-komentosarjaan ja päinvastoin.

Tietojen siirtäminen PHP: stä JavaScriptiin ja päinvastoin
Tietojen siirtäminen PHP: stä JavaScriptiin ja päinvastoin

Se on välttämätöntä

Perustiedot PHP-, JavaScript- ja HTML-kielistä

Ohjeet

Vaihe 1

Sivunmuodostusvaiheessa ei ole vaikeaa siirtää muuttujaa ja sen arvoa php-skriptistä JavaScript-skriptiin. PHP-komentosarja itse luo pyydetyn sivun HTML-koodin, mukaan lukien sen sisältämät skriptit. Tämä tarkoittaa, että hän voi kirjoittaa kaikki muuttujat JavaScript-koodiin, jotka tulisi välittää niiden arvojen kanssa. Esimerkiksi tämä php-komentosarja välittää asiakasohjelmalle muuttujan nimeltä "serverTime", joka sisältää nykyisen palvelimen ajan muodossa HOUR: MINUTE:

<? php

$ JSvarName = 'palvelimen aika';

$ JSvarValue = päivämäärä ('H: i');

$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';

tulosta ''. $ JScode.'alert ("Ja palvelimella nyt" + '. $ JSvarName.'); '

?>

Muuttujan ja sen arvon välittäminen PHP: stä Javascriptiin
Muuttujan ja sen arvon välittäminen PHP: stä Javascriptiin

Vaihe 2

Yksinkertaisin tapa siirtää muuttujien nimet ja arvot vastakkaiseen suuntaan (asiakkaan selaimen JS-skriptistä web-palvelimen PHP-skriptiin) voi näyttää tältä sivun HTML-koodissa:

var now = uusi päivämäärä ();

var varName = 'clientTime';

var varValue = now.getHours () + ":" + now.getMinutes ();

window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;

Tämä komentosarja lähettää komentotiedostolle test2.php muuttujan "clientTime" nimen ja sen arvon, joka sisältää nykyisen tietokoneen ajan samassa muodossa HOUR: MINUTE. Tätä tiedonsiirtomenetelmää kutsutaan "synkroniseksi" - se johtaa sivun välittömään lataamiseen. Tarkemmin sanottuna nykyisen sivun sijaan test2.php-komentosarjan tulos ladataan selaimeen. Tämän php-komentosarjan koodi saattaa näyttää tältä:

<? php

if ($ _ GET) echo 'Vastaanotettu muuttuja'.avain ($ _ GET). '='. $ _ GET [avain ($ _ GET)];

?>

Voit yhdistää koodin kaikki kolme osaa muuttujien siirtämiseksi palvelimelta selaimeen ja takaisin yhdeksi php-tiedostoksi tällä tavalla:

<? php

if ($ _ GET) echo 'Vastaanotettu muuttuja'.avain ($ _ GET). '='. $ _ GET [avain ($ _ GET)];

$ JSvarName = 'palvelimen aika';

$ JSvarValue = päivämäärä ('H: i');

$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';

tulosta ''. $ JScode.'alert ("Ja palvelimella nyt" + '. $ JSvarName.'); '

?>

function sendData () {

var now = uusi päivämäärä ();

var varName = 'clientTime';

var varValue = now.getHours () + ":" + now.getMinutes ();

window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;

return false;

}

Lähetä tietoja palvelimelle Tässä yhdistetyssä (PHP + JavaScript) komentosarjassa php-koodi luo JavaScript-koodin "välittämällä" muuttujan nimeltä "serverTime" arvolla, joka sisältää nykyisen palvelimen ajan. Kun sivu ladataan selaimeen, JavaScript-komentosarja näyttää viestin tällä kertaa. Sitten käyttäjä napsauttaa Lähetä tiedot palvelimelle -linkkiä käynnistää sendData () -toiminnon, joka lähettää GET-pyynnön palvelimelle ja välittää muuttujan nimen ("clientTime") ja sen arvon (client time) php: lle käsikirjoitus. PHP-komentosarja, joka on lukenut muuttujan nimen ja arvon $ _GET superglobal-taulukosta, tulostaa sen ja aloittaa koko kuvatun komentosarjan uudelleen.

Muuttujien ja niiden arvojen vaihto PHP: n ja JavaScriptin välillä
Muuttujien ja niiden arvojen vaihto PHP: n ja JavaScriptin välillä

Vaihe 3

Kaikki edellä kuvattu toteuttaa "synkronisen" tiedonsiirron skenaarion. "Asynkronisen" menetelmän toteuttamisella tiedonvaihtoon asiakas- ja palvelinkomentosarjojen välillä on oma nimi AJAX (Asynkroninen Javascript ja XML). Tämä aihe ansaitsee erillisen artikkelin.

Suositeltava: