Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Recenzije
  • Umetanje php-a u javascript web konfiguracijski kod. PHP varijable u JavaScript-u

Umetanje php-a u javascript web konfiguracijski kod. PHP varijable u JavaScript-u

Zašto je pitanje prenošenja varijable s jezika na jezik početničko pitanje? Jer to je nemoguće uraditi! Programski jezici rade svaki nezavisno. A prijenos direktno između njih je nemoguć. Sada ću objasniti zašto.

Činjenica je da su PHP i JavaScript samo uslovno povezani. PHP radi na serveru, a JavaScript radi u pretraživaču.

Dozvolite mi da vas podsjetim na internet algoritam. Odnosno, šta se dešava kada zatražite adresu...

  • Pretraživač generiše zaglavlja zahtjeva, dodaje neku vrstu važna informacija o sebi i šalje ih na ovu adresu.
  • Server prima zaglavlja i razumije da dokument treba vratiti. On razumije da se ne traži dokument, već program. Zatim pokreće ovaj program i daje mu sve podatke koje je primio iz pretraživača.
  • Program (php skripta) se pokreće, pokreće i jednostavno ispisuje rezultat svog rada. Rezultat rada može biti HTML stranica sa uključenim JavaScript skriptama. Ali sećamo se toga u ovog trenutka PHP i JavaScript rade za to i ne razlikuju se od bilo kojih drugih podataka. Samo pisma.
  • Server prima ono što je program odštampao. Prilaže zaglavlja odgovora i sve ih šalje pretraživaču koji je tražio.
  • Pretraživač prima kod stranice i prikazuje ga. Puno više potrebne datoteke(js, css, slike), primjenjuje ih na html kod. I tek sada je uključen JavaScript ugrađen u pretraživač.
  • Ako pažljivo pogledate ovaj redoslijed rada, možete odgovoriti na pitanje

    Kako prenijeti varijablu iz PHP-a u JavaScript?

    Potrebno u toku rada PHP skripta samo generirajte takav tekst tako da se može izvršiti u pretraživaču. Na primjer.

    Asinhrono prosleđivanje varijable iz JavaScript-a u PHP

    To znači koristeći Ajax. U suštini, radi se ista stvar kao u prethodnom slučaju, ali se stranica pretraživača ne učitava ponovo. Najlakši način da se to ilustruje je korištenje .

    var message = "Zdravo, server!"; $..php", (poruka:poruka), funkcija(podaci) ( alert("Server je odgovorio: "+podaci); ));

    Kao što vidite, sve je još jednostavnije. Nema potrebe da koristite funkciju encodeURIComponent; jQuery to radi umjesto nas. Opisujemo funkciju koja uzima odgovor servera i dodaje ga varijabli podataka. Ako index.php jednostavno vrati vrijednost varijable $_GET, tada ćemo vidjeti upozorenje s tekstom "Server je odgovorio: Zdravo, server!"

    Broadcast složeni objekti sa php-a na javascript

    Sjećamo se da kada generirate JavaScript iz php-a, morate se pridržavati JavaScript sintakse. Stoga moramo prevesti podatke iz PHP reprezentacije u JavaScript reprezentaciju. Najlakši način da to učinite je korištenje JSON format i json_encode() funkcija, koja će okrenuti objekt ili php niz na string koji će, kada se izvrši od strane JavaScript motora, proizvesti JavaScript objekat.

    Ovdje stvari mogu početi da se zbunjuju. Ali nema razloga za brigu. Dovoljno je zapamtiti sekvencu. Prvo se izvršava PHP, a zatim JavaScript. Nakon pokretanja php-a dobićete:

    var obj=("test":"123","key":"value"); upozorenje(obj.test);

    Koja će, kada se izvrši, prikazati upozorenje sa tekstom “123”.

    Ukupno

    Morate imati na umu da php generiše JS, tako da je prosljeđivanje podataka iz njega prilično jednostavno. Morate generirati JS na isti način kao html. Podliježe JavaScript sintaksi.

    Dodatni zahtjev se uvijek koristi za prijenos podataka iz JS u PHP. Kako se to sprovodi je deseta stvar. Na primjer, obrazac se može generirati i poslati. Ili otvorite iframe. Ali poenta ostaje. Razumijevajući ovu suštinu, možete jednostavno prenijeti sve podatke iz pretraživača na server i nazad.

    Lepo je često postavljano pitanje, koji nastaje na forumima. U principu, svako to može sam shvatiti. Ali ako imate pitanje, pokušat ćemo ga riješiti ovdje.

    Dakle, postoji pretraživač. Ovo je program koji može lijepo prikazati HTML datoteku na ekranu. Ovaj fajl pretraživač može preuzeti samo sa 2 mesta: sa interneta i sa interneta lokalni računar(ili mreže).

    Ako pretraživač preuzima datoteke sa diska lokalnog računara, onda ovu datoteku može mijenjati bilo ko. Na primjer, možete kreirati program u C ili Pascalu koji piše u html fajl 1000 puta riječ "zdravo". Zatim će pretraživač uzeti datoteku i prikazati je na ekranu korisnika. Imajte na umu da pretraživač ne zanima odakle je datoteka nastala. To ga se ne tiče, on to shvata final html fajl.

    Ako se datoteka pojavi sa Interneta, pretraživač često ne zna ništa o datoteci: ni datum, ni veličinu (dok se potpuno ne preuzme), ni pravo ime. Ako ovaj fajl na serveru će biti rezultat rada nekog programa, tada ova okolnost ni na koji način neće utjecati na pretraživač (opet ga neće zanimati). Skriptni jezici su zasnovani na ovoj osobini. Ako postavite php datoteku u web direktorij na serveru, pretraživač neće primiti samu datoteku, već samo rezultat PHP-a koji je izvršio php datoteku.
    Šta je JavaScript (JS)? Ovo je isti html. Drugim riječima, ovo je određeni skup dodatnih oznaka i ništa više. Ako u bilo kom pokrenutom PHP programu zamenite echo "Enter login" sa echo "document.write("Enter login");"; , To ovu operaciju neće uticati na PHP program ni na koji način. Na početku, eho pohranjujete u datoteku. Kada korisnik pristupi stranici ovu naredbu Izvršava se PHP, što pretraživaču daje rezultat rada. One. linija koja je bila u ehu. Ako je u redu bio JS kod, ispostavilo se da će ga pretraživač primiti. Dakle, šta je JS? Ovo je, kako smo saznali, određeni skup dodataka čistom html kod tekst koji u html datoteci stiže u pretraživač i tamo se izvršava. To je ono što niko ne želi da razume - PHP radi na serveru, a JS samo u pretraživaču. Šta je u našem pretraživaču? HTML kod. A pretraživaču nije važno odakle je došao. Pregledač uzima html datoteku i prikazuje je na ekranu, izvršavajući oznake, a usput i JS kod.

    Šta vam je potrebno da konvertujete varijablu iz PHP-a u JS? Prije svega, shvatite da će se prvo izvršiti PHP, koji kreira HTML stranicu (i usput može kreirati JS kod). Zamislite da imamo ovaj fajl:

    i sada ovu formulu izračunava PHP, a zatim umeće rezultat na pravo mesto na html stranici. A činjenica da je rezultat deklaracija JS programske varijable jednostavno je pozitivna nuspojava. PHP nije briga šta program radi ili zašto je izračunao zbir 2 i 3.


    »

    U većini web aplikacija, statični JavaScript fajlovi odgovaraju programeru 100%. Međutim, ponekad se to dogodi najbolje rješenje povežite PHP i generirajte sadržaj JS datoteke u hodu (na primjer, get trenutne cijene za proizvode iz baze podataka i prenijeti ih u JavaScript program za provjeru narudžbenice). Kako to učiniti?

    Prvi metod: Jednostavan Naravno, najjednostavnije rešenje je da uključite PHP kod unutar odeljka vašeg HTML šablona, ​​pošto je velika verovatnoća da će imati ekstenziju .php.

    var jsVar = "";
    Čak i ako je ekstenzija predloška .htm ili .html, tada je u većini slučajeva web server konfiguriran da razumije uključivanje PHP koda (ako nije, onda se na kraju napomene nalazi jednostavan primjer kako riješiti ovaj problem ). Ali što se ljepote tiče, ova opcija nije najelegantnija. Bilo bi dobro držati muhe i kotlete odvojeno.

    Drugi metod: prelep Drugo rešenje je da konfigurišete veb server tako da analizira JavaScript fajlove za izvršavanje PHP koda. Dovoljno je stvarati u željeni folder.htaccess datoteku ili otvorite postojeću i dodajte joj sljedeće redove:

    AddType application/x-httpd-php .js AddHandler x-httpd-php5 .js

    Pro et Contra: šta nam ovo daje? Pro
    • Možete uključiti PHP kod u datoteke sa ekstenzijom .js i on će se automatski izvršiti kada klijent pristupi JavaScript datoteci.
    • Takve “hibridne” skripte možete čuvati u posebnom folderu - samo postavite gore opisani .htaccess fajl u ovu fasciklu.
    • Ako želite da sve JavaScript fajlove zadržite na jednom mestu (statičke i hibridne), možete registrovati fajl rukovalac sa proizvoljnom ekstenzijom, na primer, .js2 - samo malo izmenite text.htaccess.
    • Možete odvojiti statične HTML stranice, šablone i JavaScript datoteke.
    Contra
    • Teoretski, ovo će uzrokovati minimalno dodatno opterećenje na serveru, ali s obzirom na varijacije s odvojeni folderi ili ekstenzije datoteka, čini se da su prednosti superiorne.
    Dodatak Da bi web server raščlanio .htm i .html datoteke i izvršio PHP kod uključen u njih, potrebno je da dodate sljedeće linije u .htaccess:

    AddType application/x-httpd-php .htm .html AddHandler x-httpd-php5 .htm .html SetHandler application/x-httpd-php
    Komentari, dopune i razmjena iskustava su dobrodošli.

    ZAKLJUČCI Prilično je čudno da mala napomena koja zapravo nudi samo isječak za brzu implementaciju određenog praktični problem izazvao tako burnu raspravu, uglavnom sličnu pokušajima da se pokaže teorija. Čuvena habra zajednica u u ovom slučaju nesebično linčovao one ideje koje se u napomeni u principu nisu doticale. Iako moramo odati počast - ipak ima nekoliko zdravih misli. A osim toga, "ne postoji drugi luksuz osim luksuza ljudske komunikacije" (prema Exuperyju)))).

    Kada razvijate svoj modul, ponekad pribjegavate izgledu (HTML i CSS) i dodatnim skriptama.

    Sve se to može zasebno povezati - nešto u tijelu stranice, nešto u odvojeni fajlovi. Ali neke dodatke je bolje umetnuti direktno u samu PHP datoteku.

    Danas ću pokazati dvije opcije kako možete umetnuti HTML, CSS ili JavaScript u PHP kod.

    Prva opcija za umetanje elemenata u PHP kod

    Mislim da ako ste makar i malo upoznati sa PHP-om, znate šta je “echo” (oznaka sa kojom možete prikazati poruku na ekranu).

    Koristeći ga, možete prikazati jedan od prethodno navedenih kodova. primjer:

    Na šta ovdje treba obratiti pažnju? Citati. Ako koristite vanjske navodnike oblika " ", tada unutrašnji navodniki elemenata moraju biti " " i obrnuto, inače ćete dobiti grešku. Ako u osnovi želite koristiti iste vanjske i unutrašnje navodnike, onda stavite znak za izlaz u unutrašnje navodnike:

    U ovom slučaju, sve će raditi kako treba.

    Druga opcija za umetanje elemenata u PHP kod

    Ova opcija mi se mnogo više sviđa od prve. Ovdje ćemo također koristiti "echo" kao u prethodna verzija, ali dodajmo još jedan "HTML" element:

    Ovdje možete umetnuti bilo koji element, bilo da je to HTML kod ili JavaScript. Ovdje citati ne igraju ulogu (možete umetnuti bilo koje), a ako želite, možete implementirati varijable za izlaz:

    Veoma zgodan način da realizujete svoje ideje.

    Najbolji članci na ovu temu