Kaip Perduoti Kintamąjį

Turinys:

Kaip Perduoti Kintamąjį
Kaip Perduoti Kintamąjį

Video: Kaip Perduoti Kintamąjį

Video: Kaip Perduoti Kintamąjį
Video: LINHAI T- BOSS bagis 2024, Gegužė
Anonim

Norėdami organizuoti interaktyvų ryšį tarp lankytojo ir svetainės (tiksliau, naršyklės su interneto serveriu), programuotojas turi pateikti keitimosi duomenimis tarp jų scenarijus. Apsvarstykime keletą paprastų variantų, kaip organizuoti kintamųjų perkėlimą iš kliento „JavaScrip“scenarijaus į serverio PHP scenarijų ir atvirkščiai.

Duomenų perdavimas iš PHP į „JavaScript“ir atvirkščiai
Duomenų perdavimas iš PHP į „JavaScript“ir atvirkščiai

Tai būtina

Pagrindinės žinios apie PHP, „JavaScript“ir HTML kalbas

Nurodymai

1 žingsnis

Puslapio formavimo etape nėra sunku perkelti kintamąjį kartu su jo verte iš php scenarijaus į JavaScript scenarijų. Pats PHP scenarijus sugeneruoja prašomo puslapio HTML kodą, įskaitant jame esančius scenarijus. Tai reiškia, kad jis gali įrašyti bet kokius kintamuosius į „JavaScript“kodą, kurie turėtų būti perduoti kartu su jų vertėmis. Pvz., Šis php scenarijus kliento scenarijui perduos kintamąjį pavadinimu „serverTime“, kuriame yra dabartinis serverio laikas valanda: MINUTE:

<? php

$ JSvarName = 'serverTime';

$ JSvarValue = data ('H: i');

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

spausdinti ''. $ JScode.'alert ("Dabar serveryje" + '. $ JSvarName.'); '

?>

Kintamojo ir jo vertės perdavimas iš PHP į „Javascript“
Kintamojo ir jo vertės perdavimas iš PHP į „Javascript“

2 žingsnis

Paprasčiausias būdas perduoti kintamųjų pavadinimus ir reikšmes priešinga kryptimi (nuo kliento naršyklės JS scenarijaus iki žiniatinklio serverio PHP scenarijaus) gali atrodyti taip puslapio HTML kode:

var dabar = nauja data ();

var varName = 'kliento laikas';

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

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

Šis scenarijus nusiųs scenarijui test2.php kintamojo „clientTime“pavadinimą ir jo vertę, kurioje yra dabartinis kompiuterio laikas tuo pačiu formatu HOUR: MINUTE. Šis duomenų perdavimo būdas vadinamas „sinchroniniu“- dėl to puslapis bus nedelsiant įkeltas iš naujo. Tiksliau, vietoj dabartinio puslapio į naršyklę bus įkeltas test2.php scenarijaus rezultatas. Šio php scenarijaus kodas gali atrodyti taip:

<? php

if ($ _ GET) echo 'Gautas kintamasis..key ($ _ GET).' = '. $ _ GET [raktas ($ _ GET)];

?>

Galite sujungti visas tris svarstomas kodo dalis, kad kintamieji būtų perduodami iš serverio į naršyklę ir atgal į vieną php failą taip:

<? php

if ($ _ GET) echo 'Gautas kintamasis..key ($ _ GET).' = '. $ _ GET [raktas ($ _ GET)];

$ JSvarName = 'serverTime';

$ JSvarValue = data ('H: i');

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

spausdinti ''. $ JScode.'alert ("Dabar serveryje" + '. $ JSvarName.'); '

?>

funkcija sendData () {

var dabar = nauja data ();

var varName = 'kliento laikas';

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

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

grąžinti klaidingą;

}

Duomenų siuntimas į serverį Šiame kombinuotame (PHP + JavaScript) scenarijuje php kodas sugeneruos „JavaScript“kodą „perduodamas“kintamąjį, pavadintą „serverTime“su verte, kurioje nurodytas dabartinis serverio laikas. Kai puslapis bus įkeltas į naršyklę, „JavaScript“scenarijuje bus rodomas pranešimas su šiuo laiku. Tada vartotojas spustelėjęs nuorodą „Siųsti duomenis į serverį“paleis funkciją sendData (), kuri išsiųs GET užklausą serveriui, perduodama kintamojo pavadinimą („clientTime“) ir jo vertę (kliento laiką) php scenarijus. PHP scenarijus, perskaitęs kintamojo pavadinimą ir vertę iš $ _GET superglobal masyvo, jį atspausdins ir vėl paleis visą aprašytą scenarijų.

Kintamųjų ir jų reikšmių keitimasis tarp PHP ir „JavaScript“
Kintamųjų ir jų reikšmių keitimasis tarp PHP ir „JavaScript“

3 žingsnis

Viskas, kas aprašyta aukščiau, įgyvendina „sinchroninio“duomenų perdavimo scenarijų. „Asinchroninio“keitimosi duomenimis tarp kliento ir serverio scenarijų metodo įgyvendinimas turi savo pavadinimą AJAX (Asynchronous Javascript and XML). Ši tema verta atskiro straipsnio.

Rekomenduojamas: