Это довольно просто, правда. Когда вы вносите изменения в свой исходный код, вы хотите подождать 10 минут для его сборки или 20 секунд? Двадцать секунд - это все, что я могу вынести. Кроме того, я либо достаю меч, либо начинаю думать о том, как я могу использовать отдельную компиляцию и связывание, чтобы вернуть его в зону комфорта.
Что касается 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.
Вот пример того, что я думаю о вас повторюсь с помощью jQuery AJAX
$.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 и т. Д.
ты только усложняешь себе жизнь. Получите jQuery или один из других отличных фреймворков.Во-вторых, поймите, что вы уже собираетесь выполнять код javascript после получения ответа от вызова AJAX.
Вот пример того, что я думаю о вас повторюсь с помощью jQuery AJAX
$.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 и т. Д.
ты только усложняешь себе жизнь. Получите jQuery или один из других отличных фреймворков.Во-вторых, поймите, что вы уже собираетесь выполнять код javascript после получения ответа от вызова AJAX.
Вот пример того, что я думаю о вас повторюсь с помощью jQuery AJAX
$.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 и т. Д.
ты тоже можешь это сделать.$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* Или JSON, XML и т. Д.
ты тоже можешь это сделать.$.get(
'wait.php',
{},
function(returnedData) {
// Assumes returnedData has a javascript function name
window[returnedData]();
},
'text'
);
* Или JSON, XML и т. Д.
Я всегда просто использую echo "";
или что-то подобное. технически вы не вызываете функцию в PHP, но это настолько близко, насколько вы собираетесь получить.
Вы не можете. Вы можете вызвать функцию JS из HTML , выведенного PHP, но это совсем другое.
Это невозможно. PHP - это серверный язык и клиентская часть JavaScript, и они мало что знают друг о друге. Вам понадобится интерпретатор JavaScript на стороне сервера (например, Aptanas Jaxer). Возможно, вы действительно хотите использовать Ajax-подобную архитектуру (функция JavaScript асинхронно вызывает скрипт PHP и что-то делает с результатом).
<td onClick= loadxml()><i>Click for Details</i></td>
function loadxml()
{
result = loadScriptWithAjax("/script.php?event=button_clicked");
alert(result);
}
// script.php
<?php
if($_GET['event'] == 'button_clicked')
echo "\"You clicked a button\"";
?>
PHP работает на сервере. JavaScript работает в клиенте. Таким образом, php не может вызвать функцию JavaScript.