Я считаю, что в PHP можно выполнить функцию java-скрипта, но останется ли она на стороне сервера, а не на стороне клиента? Могу ли я, в PHP, вызвать функцию .js, передав ему некоторые аргументы и вернуть его к PHP, который его назвал?
Сценарий, который я хочу использовать, возвращает XML, и я хочу получить входные данные пользователя с помощью PHP, передать их функции .js, находящейся на сервере , а затем взять возвращаемый xml и проанализировать его обратно в части PHP.
Я спрашиваю, потому что я вижу, что люди комментируют это, потому что .js – это клиентская сторона, а PHP – серверная, они не ладят друг с другом. Я надеялся, что, выполняя функцию .js в PHP, я могу подделать вызов .js как исходящий с локальной машины (сервера).
Спасибо за любую информацию!
Вы не можете вызывать JavaScript из самого PHP. PHP не является механизмом JavaScript.
Тем не менее, существует расширение PECL для взаимодействия с V8:
И вы можете взаимодействовать с (серверным) движком JavaScript. Посмотрите на node.js и
Вы могли бы, если бы нашли интерпретатор Javascript на стороне сервера, на который вы могли бы обратиться. Я не использовал PHPJS (http://phpjs.berlios.de/), но он может работать.
Похоже, ваша лучшая ставка заключается в замене кода js, потому что то, что вы делаете, просто звучит как плохая идея.
Я думаю, что он прибил его. Но если вам неудобно с AJAX, или просто нужно немного больше деталей.
Сначала – введите действие на кнопку (форма submit или иначе). действие = "JavaScript: yourJsFunc ()". Этот элемент, вероятно, будет отображаться через эхо на вашем PHP или просто написан статически.
Далее. Получите нужные параметры. Я бы предложил методы jQuery или DOM, т.е. $ ('# blah') или document.getElementById ('blah'). val ();
Затем – установите скрытые входы для сохранения ответа, принудительно подайте или выполните запрос ajax. Вы находитесь на PHP с вашими ценностями!
function yourJsFunc() { var arg1 = $('#arg1').val //or equivalent DOM method var arg2... //serialize these if necessary var yourXML = outsideJSFunction(arg1, arg2, etc); $('#invisibleDiv').html('<form id="yourForm" method="POST"><input type="hidden" name="x" val="'+yourXML+'" /></form>'); $('#yourForm').submit(); //ALTERNATIVELY $.get("other.php", {myXml : yourXml}, function() {//whatever}); }
Это действительно не так сложно, как кажется.
FYI, относительно малоизвестное решение для AJAX через PHP называется XAJAX . Вероятно, это не поможет вам в этом случае слишком много, но это позволяет вам делать вызовы AJAX для функций PHP. Хотя верно, что PHP не имеет javascript-интерпретатора, XAJAX и JQuery Ajax – отличные способы взаимодействия внешнего интерфейса с функциональностью на стороне сервера.