Що стосується 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 тощо