Upang maisaayos ang interactive na komunikasyon sa pagitan ng isang bisita at isang website (o sa halip, isang browser na may isang web server), kailangang magbigay ang programmer ng mga sitwasyon para sa pagpapalitan ng data sa pagitan nila. Isaalang-alang natin ang maraming mga simpleng pagpipilian para sa pag-aayos ng paglipat ng mga variable mula sa script ng client ng JavaScrip sa server ng PHP script at kabaliktaran.
Kailangan iyon
Pangunahing kaalaman sa mga wikang PHP, JavaScript at HTML
Panuto
Hakbang 1
Sa yugto ng pagbuo ng pahina, hindi mahirap ilipat ang isang variable kasama ang halaga nito mula sa isang php script patungo sa isang JavaScript script. Ang script ng PHP mismo ay bumubuo ng HTML code ng hiniling na pahina, kasama ang mga script na naglalaman nito. Nangangahulugan ito na maaari niyang isulat ang anumang mga variable sa JavaScript code na dapat na ipasa kasama ang kanilang mga halaga. Halimbawa, ang php script na ito ay ipapasa sa client script isang variable na pinangalanang "serverTime" na naglalaman ng kasalukuyang oras ng server sa format na HOUR: MINUTE:
<? php
$ JSvarName = 'serverTime';
$ JSvarValue = petsa ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
i-print ''. $ JScode.'alert ("At sa server ngayon" + '. $ JSvarName.'); '
?>
Hakbang 2
Ang pinakasimpleng paraan ng pagpasa ng mga pangalan at halaga ng mga variable sa kabaligtaran na direksyon (mula sa script ng JS sa browser ng client sa PHP script sa web server) ay maaaring magmukhang ganito sa HTML code ng pahina:
var now = bagong petsa ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = 'https://sa/test2.php?' + varName + '=' varValue;
Ipapadala ng script na ito sa script test2.php ang pangalan ng variable na "clientTime" at ang halaga nito na naglalaman ng kasalukuyang oras ng computer sa parehong format na HOUR: MINute. Ang pamamaraang ito ng paglilipat ng data ay tinatawag na "magkasabay" - magreresulta ito sa isang agarang pag-reload ng pahina. Mas tiyak, sa halip na ang kasalukuyang pahina, ang resulta ng test2.php script ay mai-load sa browser. Ang code para sa php script na ito ay maaaring ganito:
<? php
kung ($ _ GET) echo 'Natanggap na variable'.key ($ _ GET). '='. $ _ GET [key ($ _ GET)];
?>
Maaari mong pagsamahin ang lahat ng tatlong isinasaalang-alang na mga bahagi ng code para sa pagpasa ng mga variable mula sa server sa browser at bumalik sa isang php file na tulad nito:
<? php
kung ($ _ GET) echo 'Natanggap na variable'.key ($ _ GET). '='. $ _ GET [key ($ _ GET)];
$ JSvarName = 'serverTime';
$ JSvarValue = petsa ('H: i');
$ JScode = $ JSvarName. '= "'. $ JSvarValue. '";';
i-print ''. $ JScode.'alert ("At sa server ngayon" + '. $ JSvarName.'); '
?>
pagpapaandar sendData () {
var now = bagong petsa ();
var varName = 'clientTime';
var varValue = now.getHours () + ":" + now.getMinutes ();
window.location.href = "https://sa/test2.php?" + varName + "=" + varValue;
bumalik ng hindi totoo;
}
Magpadala ng data sa server Sa pinagsamang (PHP + JavaScript) script na ito, ang php code ay bubuo ng JavaScript code sa pamamagitan ng "pagpasa" ng isang variable na pinangalanang "serverTime" na may halagang naglalaman ng kasalukuyang oras ng server. Kapag na-load ang pahina sa browser, ang script ng JavaScript ay magpapakita ng isang mensahe sa oras na ito. Pagkatapos ay mag-click ang gumagamit sa link na "Magpadala ng data sa server" ay ilulunsad ang pagpapaandar na sendData (), na magpapadala ng isang kahilingan sa GET sa server, ipapasa ang variable na pangalan ("clientTime") at ang halaga nito (oras ng client) sa php iskrip. Ang isang php script, na nabasa ang pangalan at halaga ng isang variable mula sa $ _GET superglobal array, ay i-print ito at sisimulan muli ang buong inilarawan na script.
Hakbang 3
Ang lahat ng inilarawan sa itaas ay nagpapatupad ng senaryo ng "magkasabay" na paglilipat ng data. Ang pagpapatupad ng "asynchronous" na paraan ng pagpapalitan ng data sa pagitan ng mga script ng client at server ay may sariling pangalan na AJAX (Asynchronous Javascript at XML). Ang paksang ito ay nararapat sa isang hiwalay na artikulo.