Jeśli chodzi o PHP (a tak naprawdę ogólnie serwer WWW), strona HTML jest niczym więcej niż skomplikowanym ciągiem znaków.
Cała wymyślna praca z językiem takim jak PHP - czytanie z baz danych i usług internetowych i tak dalej - ostatecznym celem końcowym jest dokładnie ta sama podstawowa zasada: wygenerować ciąg HTML *.
Twój duży ciąg HTML nie stanie się niczym bardziej specjalnym, dopóki nie zostanie załadowany przez przeglądarkę internetową. Raz w ładunku przeglądarce strona, potem wszystkie inne magia - układ, model box Stuff generacji DOM, i wiele innych rzeczy, w tym wykonanie JavaScript.
Zatem nie „wywołujesz JavaScript z PHP”, „dołączasz wywołanie funkcji JavaScript do swojego wyniku”.
Można to zrobić na wiele sposobów, ale oto kilka.
Używając tylko PHP:
echo '<script type="text/javascript">',
'jsfunction();',
'</script>'
;
Wyjście z trybu php do trybu bezpośredniego wyjścia:
<?php
// some php stuff
?>
<script type="text/javascript">
jsFunction();
</script>
Nie musisz zwracać nazwy funkcji ani nic takiego. Przede wszystkim przestań ręcznie pisać żądania AJAX. Utrudniasz to sobie. Pobierz jQuery lub jedną z innych doskonałych platform.
Po drugie, zrozum, że będziesz już wykonywał kod javascript po otrzymaniu odpowiedzi z wywołania AJAX.
Oto przykład tego, co myślę, że robisz z AJAX 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
}
Teraz, jeśli nie możesz wysyłać nazwy funkcji z PHP z powrotem do wywołania AJAX, możesz to zrobić.
$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* Lub JSON lub XML itp.