У меня есть php-функция, в этой функции у меня есть javascript, который получает значение моего элемента из родительского окна. Моя проблема заключается в том, как передать это значение в php-переменные
Любая помощь была бы весьма признательна.
благодаря
Тирсо
Я пробовал этот код, но всегда получал значение 1
вот мой код
function do_upload() { $categories = print '<script type="text/javascript">window.top.window.$("#categories").val();</script>'; }
значение, которое у меня есть для $ категорий, всегда 1;
Языковая конструкция PHP print () всегда возвращает 1.
PHP выполняется на стороне сервера. Выполняется JavaScript на стороне клиента. Вы не можете смешивать их напрямую. Лучшее, что вы могли бы сделать, это заставить JavaScript сделать вызов AJAX скрипту PHP на сервере.
PHP-код запускается на сервере (до отправки кода в клиентский браузер) и JavaScript на клиенте (после отправки кода в клиентский браузер). Я не уверен, что есть другой способ передать информацию на сервер, кроме отправки запроса на сервер. поэтому, если вы хотите отправить что-то в свое приложение PHP (на стороне сервера), вам придется отправить запрос с вашего кода JavaScript (на стороне клиента). вы можете использовать методы AJAX, но это приводит к запуску другого процесса PHP на сервере. поэтому вам нужно будет найти способ связи между базовым процессом PHP (который создал JavaScript) и новым процессом (называемым JavaScript) для передачи информации. вы можете использовать стойкость данных на стороне сервера, например сеансы или файлы или базы данных, или межпроцессные коммуникационные решения, такие как разделяемая память. но я думаю, что это будет немного сложнее в реализации.
Лучшее, что вы можете сделать, это сделать ajax-вызов на серверной странице, которая вызывает метод do_upload для вас:
$.ajax({ url: '/ajax.php', data: 'category=' + window.top.window.$('#categories').val(), type:'POST', success:function(html){ } });
ajax.php:
if ( isset( $_POST['category'] ) ) { do_upload( $_POST['category'] ); }
Не забудьте отфильтровать данные $ _POST, чтобы убедиться, что они в нужном формате.