2012-04-11 22 views
12

stavo avendo difficoltà a raggiungere la funzione il successo di una chiamata jQuery Ajax per funzionare correttamente ed è stato mi ha fatto notare che il motivo era che la mia funzione PHP stava usando return $ risultato quando dovrei usare echo $ result.Differenza tra php echo e il ritorno in termini di una chiamata AJAX jQuery

Modifica della funzione PHP che l'Ajax ha chiamato da "ritorno $ risultato" a "risultato echo $" risolto il problema, ma perché? Ci sono molte spiegazioni sulla differenza tra i due (return ed echo) in termini di script PHP, ma come si differenziano quando si invia quel valore ad una chiamata Ajax?

risposta

20

Bene, la chiamata ajax legge la risposta dal server e tale risposta deve essere visualizzata come un tipo di dati leggibili, ad esempio application/json o text/html.

Per poter scrivere i dati, è necessario echo dal server con PHP.

L'istruzione return non scrive i dati, restituisce semplicemente a livello di server.

8

Una chiamata Ajax utilizza la risposta di una richiesta HTTP. Uno script PHP non genera output ripristinando, ma facendo eco.

2

I echo uscite di comando dei dati all'uscita Standar, questo è in applicazioni browser web, il cliente che ha richiesto i dati. Nella CLI stampa i dati sulla console. E il comando return chiude la funzione con un valore, ma non stampa nulla.

Se si desidera comunicare tra funzioni PHP, è necessario utilizzare return. Ma se si desidera l'output alcuni dati, è necessario utilizzare echo.

5

chiamate Ajax vedere i dati nello stesso modo che facciamo, si legge come una stringa. In pratica accede a un'altra pagina Web e "riceve" il risultato. "Return" di PHP restituisce il valore solo sul server. È necessario che vengano effettivamente emessi i dati in modo che quando viene effettuata la chiamata Ajax, la pagina in cui si trova effettivamente abbia i dati scritti.

Problemi correlati