Per quanto riguarda PHP (o davvero, un web server in generale), una pagina HTML non è niente di più complicato di una grande stringa.
Tutto il fantastico lavoro che puoi fare con un linguaggio come PHP - leggere da database e servizi web e tutto il resto - l'obiettivo finale finale è lo stesso principio base esatto: generare una stringa di HTML *.
La tua grande stringa HTML non diventa nulla di più speciale fino a quando non viene caricata da un browser web. Una volta che un browser carica la pagina, si verificano tutte le altre magie: layout, elementi del modello a scatola, generazione DOM e molte altre cose, inclusa l'esecuzione di JavaScript.
Quindi, non "chiami JavaScript da PHP", "includi una chiamata di funzione JavaScript nel tuo output".
Ci sono molti modi per farlo, ma qui ce ne sono un paio.
Utilizzando solo PHP:
echo '<script type="text/javascript">',
'jsfunction();',
'</script>'
;
Passare dalla modalità php alla modalità di uscita diretta:
<?php
// some php stuff
?>
<script type="text/javascript">
jsFunction();
</script>
Non è necessario restituire un nome di funzione o qualcosa del genere. Prima di tutto, smetti di scrivere le richieste AJAX a mano. Stai solo rendendo duro con te stesso. Ottieni jQuery o uno degli altri eccellenti framework là fuori.
In secondo luogo, tieni presente che eseguirai già il codice javascript una volta ricevuta la risposta dalla chiamata AJAX.
Ecco un esempio di ciò che penso tu stia facendo con AJAX di jQuery
$.get(
'wait.php',
{},
function(returnedData) {
document.getElementById("txt").innerHTML = returnedData;
// Ok, here's where you can call another function
someOtherFunctionYouWantToCall();
// But unless you really need to, you don't have to
// We're already in the middle of a function execution
// right here, so you might as well put your code here
},
'text'
);
function someOtherFunctionYouWantToCall() {
// stuff
}
Ora, se sei pronto per inviare un nome di funzione da PHP alla chiamata AJAX, puoi farlo anche tu.
$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* O JSON o XML ecc.