Transmiteți valoarea variabilei php. Cum se trece o variabilă din JavaScript în PHP

De ce întrebarea trecerii unei variabile de la o limbă la alta este o întrebare pentru începători? Pentru că este imposibil să o faci! Fiecare limbaj de programare funcționează independent. Și transferul direct între ele este imposibil. Acum voi explica de ce.

Faptul este că PHP și JavaScript sunt legate doar condiționat. PHP rulează pe server și JavaScript rulează în browser.

Permiteți-mi să vă amintesc de algoritmul de internet. Adică ce se întâmplă când solicitați o adresă...

  • Browserul generează antete de solicitare, adaugă un fel de informatii importante despre tine și le trimite la această adresă.
  • Serverul primește anteturile și înțelege că documentul trebuie trimis. El înțelege că nu este un document care se solicită, ci un program. Apoi lansează acest program și îi oferă toate datele pe care le-a primit de la browser.
  • Programul (script php) rulează, rulează și pur și simplu imprimă rezultatul muncii sale. Rezultatul lucrării poate fi o pagină HTML care include scripturi JavaScript. Dar ne amintim că în în acest moment PHP și JavaScript funcționează pentru el și nu diferă de orice alte date. Doar litere.
  • Serverul primește ceea ce programul a imprimat. Atașează antetele răspunsului și le trimite pe toate browserului solicitant.
  • Browserul primește codul paginii și îl afișează. Încărcă mai mult fisierele necesare(js, css, imagini), le aplică codului html. Și abia acum JavaScript-ul încorporat în browser este activat.
  • Dacă te uiți cu atenție la această ordine de lucru, poți răspunde la întrebare

    Cum se trece o variabilă de la PHP la JavaScript?

    Necesar în timpul rulării Script PHP doar generați un astfel de text, astfel încât să poată fi apoi executat în browser. De exemplu.

    Trecerea asincronă a unei variabile de la JavaScript la PHP

    Aceasta implică folosind Ajax. În esență, se face același lucru ca în cazul precedent, dar pagina browserului nu se reîncarcă. Cel mai simplu mod de a ilustra acest lucru este folosirea .

    var message = "Bună, server!"; $..php", (mesaj:mesaj), function(date) ( alert("Serverul a raspuns: "+date); ));

    După cum puteți vedea, totul este și mai simplu. Nu este nevoie să folosiți funcția encodeURIComponent; jQuery o face pentru noi. Descriem o funcție care preia răspunsul serverului și îl adaugă la variabila de date. Dacă index.php returnează pur și simplu valoarea variabilei $_GET, atunci vom vedea o alertă cu textul „Serverul a răspuns: Bună, server!”

    Difuzare obiecte complexe de la php la javascript

    Ne amintim că atunci când generați JavaScript din php, trebuie să respectați Sintaxa JavaScript. Prin urmare, trebuie să traducem datele din reprezentarea PHP în reprezentarea JavaScript. Cel mai simplu mod de a face acest lucru este să utilizați formatul JSON și funcția json_encode(), care va transforma obiectul sau matrice php la un șir care, atunci când este executat de motorul JavaScript, va produce un obiect JavaScript.

    Aici lucrurile pot începe să devină confuze. Dar nu este nimic de care să vă faceți griji. Este suficient să ne amintim succesiunea. PHP este executat mai întâi, apoi JavaScript. După execuție php se va dovedi:

    var obj=("test":"123","key":"valoare"); alert(obj.test);

    Care, atunci când este executat, va afișa o alertă cu textul „123”.

    Total

    Trebuie să rețineți că php generează JS, așa că transmiterea datelor din acesta este destul de simplă. Trebuie să generați JS în același mod ca html. Sub rezerva sintaxei JavaScript.

    O solicitare suplimentară este întotdeauna utilizată pentru a transfera date de la JS la PHP. Modul în care se realizează este a zecea chestiune. De exemplu, un formular poate fi generat și trimis. Sau deschideți un iframe. Dar ideea rămâne. Înțelegând această esență, puteți transfera orice date din browser pe server și înapoi destul de simplu.

    Așa că ne continuăm studiul din nou Bazele PHP iar în acest articol ne vom familiariza cu modalități de a trece variabile în PHP, și anume metodele GET și POST. Fiecare dintre ele are avantajele și dezavantajele sale și este folosit în situații adecvate, care vor fi discutate în acest articol. Vom analiza, de asemenea, exemple de cod care demonstrează cum funcționează metodele POST și GET.

    Transmiterea de variabile folosind metoda GET

    Această metodă de trecere a variabilelor este folosită în PHP pentru a trece variabile într-un fișier folosind bara de adrese. Adică, variabilele sunt transmise imediat prin intermediul bara de adrese browser. Un exemplu ar fi, de exemplu, un link către un articol din WordPress fără a utiliza CNC (SEF), care arată cam așa:

    https://archive.site/?p=315

    Adică în în acest caz, variabila $p este transmisă cu valoarea 315. Acum să aruncăm o privire mai atentă la metoda GET folosind un exemplu. Să presupunem că trebuie să transferăm trei variabile $a, $b și $c într-un fișier folosind metoda GET și să afișăm suma lor pe ecran. Puteți utiliza următorul cod pentru aceasta.

    $a = $_GET["a"]; $b = $_GET["b"]; $c = $_GET["c"]; $summa = $a + $b + $c; echo "Suma $a + $b + $c = $summa";

    Deoarece toate variabilele vor fi plasate în matricea globală GET() înainte de transmitere, mai întâi atribuim variabilelor noastre valorile elementelor corespunzătoare ale matricei GET. Facem acest lucru chiar de la început pentru a evita diverse erori la trecerea variabilelor. Apoi, pentru a demonstra munca, scriem o formulă arbitrară și afișăm rezultatul pe ecran.

    Pentru a testa metoda GET, adăugați pur și simplu un semn de întrebare „?” la linkul fișierului. iar prin ampersand „&” enumerați variabilele cu valorile lor. Să presupunem că avem un fișier get.php, care se află la rădăcina site-ului. Pentru a transfera variabile într-un fișier, trebuie doar să scrieți următoarele în bara de adrese.

    https://archive.site/get.php?a=1&b=2&c=3

    După cum puteți vedea din exemplu, mai întâi adăugăm un semn de întrebare imediat după numele fișierului. În continuare, înregistrăm variabila și indicăm valoarea acesteia folosind equals. După aceasta, listăm alte variabile în același mod prin ampersand. Acum, când urmărim această legătură, vom vedea suma variabilelor $a, $b și $c.

    Această metodă este foarte simplă și nu necesită creare fișiere suplimentare. Toate datele necesare vin direct prin bara de adrese a browserului.

    Ei bine, acum să trecem la a doua metodă de transmitere a variabilelor în PHP - metoda POST.

    Transmiterea de variabile către PHP folosind metoda POST

    Această metodă vă permite să transferați în secret variabile dintr-un fișier în altul. După cum ați înțeles deja, două fișiere sunt de obicei folosite în aceste scopuri. Primul conține un formular pentru introducerea datelor inițiale, iar al doilea conține un fișier executiv care acceptă variabile. Pentru demonstrație, să ne uităm la următorul cod.

    Codul primului dosar cu formularul de transmitere a datelor. Să-i dăm numele post-1.php

    • acțiune – specificați fișierul în care vor fi transferate variabilele.
    • metoda – metoda de trecere a variabilelor. În cazul nostru, aceasta este metoda POST.
    • nume – denumirea formularului. În același timp, o variabilă cu același nume va fi transferată în fișier.

    Câmpuri de text:

    • nume – nume de variabile. În cazul nostru, acesta este numele și prenumele (variabilele nume și prenume).
    • tip – tip câmp. În cazul nostru, acesta este un câmp text.
    • nume – numele butonului și variabila care va fi transmisă împreună cu alte variabile.
    • tip – tip buton. În cazul nostru, acesta este un buton pentru trimiterea datelor.
    • valoare – text pe buton.

    Codul celui de-al doilea fișier, care va servi ca receptor variabil. Să-i spunem post-2.php

    $nume = $_POST; $nume = $_POST; echo „Valorile variabilelor transmise prin metoda POST sunt $nume și $nume”;

    Ca și în cazul metodei GET, mai întâi atribuim variabilelor valorile elementelor corespunzătoare ale matricei globale POST. Apoi, pentru claritate, afișăm aceste variabile pe ecran folosind .

    Acum, când încărcăm primul fișier, se va încărca formularul. După introducerea datelor, faceți clic pe butonul „Trimite”, în urma căruia se va deschide o pagină cu un al doilea fișier într-o filă nouă, care va afișa valorile scrise în formularul de pe pagina anterioară. Adică, valorile variabilelor din primul fișier vor fi transferate în al doilea fișier.

    Aceasta încheie acest articol despre trecerea variabilelor în PHP. Daca nu vrei sa ratezi aparitia altor articole pe blog, iti recomand sa te abonezi la newsletter de catre orice într-un mod convenabilîn secțiunea „Abonament” sau utilizați formularul de mai jos.

    Asta e tot. Mult succes și succes în stăpânirea elementelor de bază ale PHP.

    Știți ce este fals la conceptul de „vid fizic”?

    Vidul fizic este un concept în fizica cuantică relativistă; este înțeles ca starea de energie cea mai scăzută (de bază) a unui câmp cuantificat, care are moment zero, moment unghiular și alte numere cuantice. Teoreticienii relativiști numesc un vid fizic un spațiu complet lipsit de materie, plin cu un câmp nemăsurabil și, prin urmare, doar imaginar. O astfel de stare, potrivit relativiștilor, nu este un vid absolut, ci un spațiu plin cu niște particule fantomă (virtuale). Teoria relativistă a câmpului cuantic afirmă că, în conformitate cu principiul incertitudinii Heisenberg, virtuale, adică aparente (aparent pentru cine?), particulele se nasc și dispar în mod constant în vidul fizic: apar așa-numitele oscilații de câmp în punctul zero. Particulele virtuale ale vidului fizic și, prin urmare, ele însele, prin definiție, nu au un sistem de referință, deoarece, altfel, principiul relativității lui Einstein, pe care se bazează teoria relativității, ar fi încălcat (adică un sistem de măsurare absolut cu referință). la particulele vidului fizic ar deveni posibil, ceea ce, la rândul său, ar respinge clar principiul relativității pe care se bazează SRT). Astfel, vidul fizic și particulele sale nu sunt elemente ale lumii fizice, ci doar elemente ale teoriei relativității care nu există în lumea reală, dar numai în formule relativiste, încălcând principiul cauzalității (apar și dispar fără cauză), principiul obiectivității (particulele virtuale pot fi considerate, în funcție de dorința teoreticianului, fie existente, fie inexistente), principiul de măsurabilitate faptică (nu sunt observabile, nu au propriul ISO).

    Când unul sau altul fizician folosește conceptul de „vid fizic”, fie nu înțelege absurditatea acestui termen, fie este necinstit, fiind un adept ascuns sau fățiș al ideologiei relativiste.

    Cel mai simplu mod de a înțelege absurditatea acestui concept este să ne întoarcem la originile apariției sale. S-a născut de Paul Dirac în anii 1930, când a devenit clar că negarea eterului în formă pură, așa cum a făcut un mare matematician, dar un fizician mediocru, nu mai este posibil. Sunt prea multe fapte care contrazic acest lucru.

    Pentru a apăra relativismul, Paul Dirac a introdus conceptul afizic și ilogic al energiei negative și apoi existența unei „mări” a două energii care se compensează reciproc în vid - pozitiv și negativ, precum și o „mare” de particule care compensează fiecare. altele - electroni virtuali (adică aparenti) și pozitroni în vid.

    8 răspunsuri

    HTML/HTTP este apatrid, cu alte cuvinte, ceea ce ați făcut/văzut pe pagina anterioară nu are nicio 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Ă