Treceți de la php la javascript. Cum se trece o variabilă din JavaScript în PHP

Se întâmplă că, din cauza naturii muncii mele, trebuie să răspund la ambele complexe probleme tehnice, și sincer noobish. Ce să faci, nivelul de pregătire al diferiților specialiști este diferit.

Ei au întrebat: „Cum se trece o variabilă din Javascript în PHP.” Aș dori să încep răspunsul la această întrebare cu faptul că Javascript și PHP rulează diferit mașini fizice, ceea ce înseamnă că pur și simplu „trecerea unei variabile”, în înțelegerea obișnuită a acestui proces, nu va funcționa.

Din moment ce Javascript rulează mașină client(client) și PHP pe partea de server (server), apoi să numim transferul de date între Javascript și PHP termenul „schimb client-server”, va fi mai corect.

Pe web, schimbul de date se realizează după următoarea schemă: o cerere de la client este trimisă către server, această solicitare este procesată de server, după care returnează câteva date (răspuns) clientului. Această metodă de schimb este folosită și de browserul însuși. Adresa URL pe care o introduceți în bara de adrese este solicitarea. Și răspunsul este HTML, care este afișat pe pagina browserului.

Cu toate acestea, nu browserul în sine trebuie să solicite date de la server. Codul Javascript care rulează pe pagină poate acționa și ca client. Pentru a face acest lucru, ei folosesc componenta de browser încorporată XMLHttpRequest, care ea însăși poate face cereri către server și poate primi răspunsuri de la acesta, în timp ce pagina HTML în sine nu este actualizată sau modificată deloc.

Lucrul cu serverul printr-un obiect XMLHttpRequest este adesea numit mai mult cuvânt popular- AJAX.

Cu toate acestea, personal nu recomand să lucrați direct cu acest obiect. Ideea este că pe browsere diferite funcționează ușor diferit și acest lucru va trebui să fie luat în considerare în cod. De asemenea, Javascript „pur” nu are mijloace convenabile lucrând cu evenimente, astfel încât veți ajunge cu o „pânză” decentă de cod, care va fi, de asemenea, cel mai probabil „buggy”.

Codul care utilizează această bibliotecă este destul de simplu și concis. de exemplu, dacă trebuie să transmiteți valoarea v=6789 către server, atunci puteți rula următorul cod

JQuery.get("/index.php?v=6789", function(rezultat)( alert(rezult); ));

În acest caz, scriptul dvs. de la /index.php va primi valoarea în variabila $_GET[‘v’]. Și tot ceea ce scoate în fluxul de ieșire (de exemplu, folosind echo) va ajunge în variabila rezultat și va fi trimis în dialogul pop-up alert().

După cum puteți vedea, totul este simplu.

În mod similar, puteți trimite date prin POST, precum și trimite date codificate în JSON (metoda cea mai des folosită), dar vă recomand să citiți despre acest lucru în documentația jQuery (vezi metodele .ajax(), .post()) .

8 răspunsuri

HTML/HTTP este apatrid, cu alte cuvinte, ceea ce ați făcut/văzut pagina anterioară, complet fără legătură pagina curentă. Cu excepția cazului în care utilizați ceva precum sesiuni, cookie-uri sau GET/POST. Sesiuni și cookie-uri sunt destul de ușor de utilizat, iar sesiunea este mult mai sigură decât cookie-urile. Mai sigur, dar nu complet.

sesiune:

//Pe pagina 1 $_SESSION["varname"] = $var_value; //Pe pagina 2 $var_value = $_SESSION["varname"];

Nu uitați să rulați session_start(); pe ambele pagini, înainte de a încerca să accesați matricea $_SESSION și, de asemenea, înainte ca orice rezultat să fie trimis către browser.

//O pagină 1 $_COOKIE["varname"] = $var_value; //Pe pagina 2 $var_value = $_COOKIE["varname"];

Mare diferențăîntre sesiuni și cookie-uri este că valoarea variabilei va fi stocată pe server dacă utilizați sesiuni și pe client dacă utilizați cookie-uri. Nu mă gândesc la niciun motiv bun pentru a folosi cookie-uri în loc de sesiuni, cu excepția cazului în care doriți ca datele să persistă între sesiuni, dar chiar și atunci ar putea fi mai bine să le stocați în DB și să le preluați pe baza numelui de utilizator sau a ID-ului.

GET și POSTĂ