Come configurare smartphone e PC. Portale informativo
  • casa
  • Recensioni
  • Inserimento di php nel codice javascript web config. Variabili PHP in JavaScript

Inserimento di php nel codice javascript web config. Variabili PHP in JavaScript

Perché la questione del passaggio di una variabile da una lingua all'altra è una domanda da principianti? Perché è impossibile farlo! I linguaggi di programmazione funzionano ciascuno in modo indipendente. E la trasmissione diretta tra loro è impossibile. Lascia che ti spieghi perché.

Il punto è che PHP e JavaScript sono collegati solo in modo condizionale. PHP viene eseguito sul server e JavaScript viene eseguito sul browser.

Lascia che ti ricordi l'algoritmo di Internet. Cioè, cosa succede quando chiedi un indirizzo ..

  1. Il browser forma le intestazioni di richiesta, allega una sorta di Informazioni importanti su se stesso e li invia a questo indirizzo.
  2. Il server accetta le intestazioni e comprende che il documento deve essere restituito. Capisce che ciò che viene richiesto non è un documento, ma un programma. Quindi avvia questo programma e gli fornisce tutti i dati che ha ricevuto dal browser.
  3. Il programma (script php) si avvia, esegue e stampa solo il risultato del suo lavoro. Il risultato del lavoro può essere una pagina html con script JavaScript inclusi. Ma ricordiamo che in questo momento PHP funziona e JavaScript per questo non è diverso da qualsiasi altro dato. Solo lettere.
  4. Il server riceve ciò che il programma ha stampato. Allega le intestazioni di risposta e invia tutto al browser richiedente.
  5. Il browser ottiene il codice della pagina e lo visualizza. Supplementi file richiesti(js, css, immagini), li applica al codice html. E solo ora JavaScript, integrato nel browser, è attivato.

Se osservi attentamente questo ordine di lavoro, puoi rispondere alla domanda

Come posso passare una variabile da PHP a JavaScript?

Necessario in fase di esecuzione Script PHP basta formare un tale testo in modo che possa essere eseguito nel browser. Ad esempio.

alert("".$var.""); ?>

Se crei un file php con questo contenuto e lo esegui da un browser, vedrai una pagina vuota e un messaggio di avviso.

Ovviamente, devi ricordare che la sintassi deve essere JavaScript. Infatti, quando generiamo codice JS in PHP, dobbiamo ricordare che il primo php genererà qualcosa e che qualcosa deve essere valido JS.

V in questo caso il nostro script php forma la riga:

E questo è JavaScript perfettamente valido che verrà eseguito dal browser.

Come posso passare una variabile da JavaScript a PHP?

Come puoi immaginare, qui le cose sono più difficili. Dopotutto, php genera JS, ma il feedback non è particolarmente implicito. Quindi, che ti piaccia o no, dovrai formare una nuova richiesta al server, trasferendo i dati per lo script al suo interno. Ne abbiamo due. L'implementazione può essere richiesta sia sincrona che asincrona. Sincrono farà ricaricare la pagina, mentre asincrono utilizzerà Ajax.

Metodo sincrono per passare dati a php da JavaScript

Questo codice reindirizzerà immediatamente l'utente a http: //site/index.php? Message = Hello% 2C% 20server!

Il codice PHP nel file index.php riceverà i dati da GET e formerà array superglobali.

Passare una variabile in modo asincrono da JavaScript a PHP

Questo significa usando Ajax... In effetti, si fa lo stesso del caso precedente, ma la pagina del browser non viene ricaricata. Il modo più semplice per illustrare questo è usare una libreria.

Come puoi vedere, tutto è ancora più semplice. Non è necessario utilizzare la funzione encodeURIComponent, jQuery lo fa per noi. Descriviamo una funzione che accetta una risposta del server e la aggiunge alla variabile di dati. Se index.php restituisce semplicemente il valore della variabile $ _GET, allora vedremo un avviso con il testo "Il server ha risposto: Hello, server!".

Passaggio di oggetti complessi da php a Javascript

Ricordiamo che quando si genera JavaScript da php, è necessario attenersi alla sintassi JavaScript. Pertanto, è necessario tradurre i dati dalla vista PHP alla vista JavaScript. Il modo più semplice per farlo è usare Formato JSON e la funzione json_encode() che convertirà l'oggetto o php array a una stringa che, quando eseguita dal motore JavaScript, produrrà un oggetto JavaScript.

"123", "chiave" => "valore"); $ js_obj = json_encode ($ arr); stampa ""; ?>

Qui puoi iniziare a confonderti. Ma non c'è niente di sbagliato. Basta ricordare la sequenza. Prima viene eseguito Php, poi JavaScript. Dopo aver eseguito php, ottieni:

Che, una volta eseguito, visualizzerà un avviso con il testo "123".

Totale

Va ricordato che php genera JS, quindi il trasferimento dei dati da esso è abbastanza semplice. È necessario formare JS nello stesso modo in cui viene formato html. Osservazione della sintassi JavaScript.

Viene sempre utilizzata una richiesta aggiuntiva per trasferire i dati da JS a PHP. Come viene eseguito è la decima cosa. Ad esempio, è possibile generare e inviare un modulo. Oppure apri un iframe. Ma l'essenza rimane. Comprendendo questa essenza, puoi trasferire qualsiasi dato dal browser al server e viceversa in modo abbastanza semplice.

È carino domanda frequente che appare nei forum. In linea di principio, chiunque è in grado di capirlo da solo. Ma se c'è una domanda, proveremo ad affrontarla qui.

Quindi c'è un browser. Questo è un programma in grado di visualizzare magnificamente un file html sullo schermo. Questo file può essere preso dal browser solo da 2 posti: da Internet e da computer locale(o rete).

Se il browser prende i file dal disco del computer locale, questo file può essere modificato da chiunque. Ad esempio, puoi creare un programma C o Pascal che scrive su file html 1000 volte la parola "ciao". E poi il browser prenderà il file e lo visualizzerà sullo schermo dell'utente. Nota, al browser non interessa la provenienza del file. Non lo riguarda, lui ottiene HTML finale file.

Se viene visualizzato un file da Internet, il browser spesso non sa nulla del file: né la data, né la dimensione (fino al completamento del download), né il vero nome. Se questa vita sul server sarà il risultato dell'operazione di un programma, quindi questa circostanza non toccherà in alcun modo il browser (sarà di nuovo sul tamburo). I linguaggi di scripting si basano su questa proprietà. Se contrassegni un file php nella directory web sul server, il browser non lo riceverà da solo, ma solo il risultato di PHP che ha eseguito il file php.
Che cos'è JavaScript (JS)? Questo è lo stesso HTML. In altre parole, questo è un insieme di tag aggiuntivi e niente di più. Se sostituisci echo " Accedi"sull'eco""; , poi questa operazione non influenzerà in alcun modo il programma PHP. All'inizio hai l'eco. Quando l'utente accede alla pagina dato il comando Viene eseguito PHP, che fornisce il risultato al browser. Quelli. la linea che era in eco. Se c'era codice JS nella riga, si scopre che il browser lo riceverà. Allora, cos'è JS? Questo, come abbiamo scoperto, è un insieme di ulteriori codice html il testo che va nel file html al browser e viene eseguito lì. Questo è ciò che nessuno vuole capire: PHP viene eseguito sul server e JS solo nel browser. Cosa c'è nel nostro browser? Codice HTML. E al browser non importa da dove provenga. Il browser prende il file html e lo visualizza sullo schermo, rimuovendo i tag e lungo il percorso il codice JS.

Di cosa hai bisogno per passare una variabile da PHP a JS? Prima di tutto, capire che PHP verrà eseguito per primo, il che crea una pagina html (e lungo la strada può creare codice JS). Immagina di avere un file del genere:

e adesso questa formula legge PHP, quindi inserisce il risultato nel posto giusto nella pagina html. E il fatto che il risultato sarà una dichiarazione di una variabile di programma JS è solo un effetto collaterale positivo. A PHP non interessa cosa fa il programma o perché ha contato la somma di 2 e 3.


»

Nella maggior parte delle applicazioni web, i file JavaScript statici sono adatti allo sviluppatore al 100%. Tuttavia, a volte succede la migliore soluzione collegare PHP e generare il contenuto del file JS "al volo" (ad esempio, get prezzi attuali ai prodotti dal database e trasferirli a un programma JavaScript per convalidare il modulo d'ordine). Come si può fare?

Metodo uno: semplice
Ovviamente, la soluzione più semplice è includere il codice PHP all'interno della sezione del modello HTML, poiché è probabile che abbia un'estensione .php.


Anche se l'estensione del template è .htm o .html, nella maggior parte dei casi il server web è configurato per comprendere le inclusioni di codice PHP (in caso contrario, c'è un semplice esempio alla fine del post su come risolvere anche questo problema). Ma per quanto riguarda la bellezza, questa opzione non è la più elegante. Sarebbe bello tenere separate le mosche e le cotolette.

Metodo due: bello
La seconda soluzione è configurare il tuo server web per analizzare i file JavaScript per eseguire il codice PHP. È sufficiente creare in la cartella desiderata htaccess o aprine uno esistente e aggiungi le seguenti righe:

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

Pro et Contra: cosa ci regala?
Pro
  • Puoi includere il codice PHP nei file con estensione .js e verrà eseguito automaticamente quando il client accede al file JavaScript.
  • Puoi conservare questi script "ibridi" in una cartella separata - basta posizionare il file .htaccess descritto sopra in questa cartella.
  • Se desideri mantenere tutti i file JavaScript in un unico posto (statico e ibrido), puoi registrare un gestore di file con un'estensione arbitraria, ad esempio .js2, modificando leggermente il testo .htaccess.
  • Puoi separare pagine HTML statiche, modelli e file JavaScript.
Contra
  • In teoria, ciò causerà un carico aggiuntivo minimo sul server, ma considerando le variazioni con cartelle separate o estensioni di file, i vantaggi sembrano superiori.
aggiunta
Affinché il server web analizzi i file .htm e .html ed esegua il codice PHP incluso in essi, è necessario aggiungere le seguenti righe a .htaccess:

Applicazione AddType / x-httpd-php .htm .html AddHandler x-httpd-php5 .htm .html Applicazione SetHandler / x-httpd-php
Sono graditi commenti, integrazioni e scambi di esperienze.

CONCLUSIONI

È piuttosto strano che una piccola nota che in realtà offra solo uno snippet per implementare rapidamente uno specifico compito pratico ha causato una discussione così accesa, per la maggior parte, simile ai tentativi di mostrare la teoria. La famosa comunità habra in questo caso ha linciato disinteressatamente quelle idee che, in linea di principio, non erano state toccate nell'articolo. Anche se dobbiamo rendere omaggio, ci sono ancora alcuni pensieri sani. E inoltre, "non c'è altro lusso che il lusso della comunicazione umana" (secondo Exupery)))).

Quando sviluppi il tuo modulo, a volte fai ricorso al layout (HTML e CSS) e a script aggiuntivi.

Tutto questo può essere collegato separatamente: qualcosa nel corpo della pagina, qualcosa in file separati... Ma alcune aggiunte sono meglio da inserire direttamente nel file PHP stesso.

Oggi ti mostrerò due opzioni su come inserire HTML, CSS o JavaScript nel tuo codice PHP.

Prima opzione per inserire elementi nel codice PHP

Penso che se hai anche solo un po' di familiarità con PHP, allora sai cosa " eco»(Un tag con il quale è possibile visualizzare un messaggio sullo schermo).

È con l'aiuto di esso che puoi visualizzare uno dei codici elencati in precedenza. Esempio:

Ciao mondo!

"; echo $ contenuto;?>

Cosa c'è qui? vale la pena prestare attenzione? Citazioni... Se usi le virgolette esterne nella forma "", le virgolette interne degli elementi devono essere "" e viceversa, altrimenti otterrai un errore. Se fondamentalmente vuoi usare le stesse virgolette esterne e interne, metti un segno di escape in quelle interne:

Ciao mondo!

"; echo $ contenuto;?>

In questo caso, tutto funzionerà correttamente.

La seconda opzione per inserire elementi nel codice PHP

Questa opzione mi piace molto di più della prima. Qui useremo anche " eco", Come in versione precedente, ma aggiungi un altro elemento " HTML»:

.main { color: red; } HTML; ?>

Puoi inserire qualsiasi elemento qui, sia esso HTML o JavaScript. Le virgolette non giocano un ruolo qui (puoi inserirne qualsiasi) e, se lo desideri, puoi incorporare variabili per l'output:

Ciao mondo!

"; eco<< .main { color: red; } HTML; ?>

Molto strada conveniente per realizzare le tue idee.

Principali articoli correlati

Categorie: