Что касается PHP (или, вообще говоря, веб-сервера), HTML-страница не сложнее, чем большая строка.
Вся сложная работа, которую вы можете выполнять с таким языком, как PHP, - чтение из баз данных и веб-сервисов и все такое - конечной целью является точно такой же основной принцип: генерировать строку HTML *.
Ваша большая строка HTML не станет более особенной, пока она не будет загружена веб-браузером. Как только браузер загрузит страницу, тогда все остальные происходит волшебство - макет, коробка модель материал, поколения DOM, и многое другое, в том числе выполнение JavaScript.
Таким образом, вы не «вызываете JavaScript из PHP», вы «включаете вызов функции JavaScript в свой вывод».
Есть много способов сделать это, но вот пара.
Используя только PHP:
echo '<script type="text/javascript">',
'jsfunction();',
'</script>'
;
Выход из режима php в режим прямого вывода:
<?php
// some php stuff
?>
<script type="text/javascript">
jsFunction();
</script>
Вам не нужно возвращать имя функции или что-то подобное. Прежде всего, прекратите писать запросы AJAX вручную. Ты только усложняешь себе. Получить jQuery или один из других отличных фреймворков там.
Во-вторых, следует понимать, что вы уже собираетесь выполнять код javascript после получения ответа от вызова AJAX.
Вот пример того, что вы делаете с 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
}
Теперь, если вы не можете отправлять имя функции из PHP обратно в вызов AJAX, вы тоже можете это сделать.
$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* Или JSON или XML и т. Д.