Переменная javascript в php - PullRequest
       17

Переменная javascript в php

1 голос
/ 04 октября 2009

У меня есть функция php, в этой функции у меня есть javascript, который получает значение моего элемента из родительского окна. Моя проблема сейчас в том, как я могу передать это значение в переменные php

Любая помощь будет принята с благодарностью.

Спасибо

Тирсо

Я пробовал этот код, но всегда получал значение 1

вот мой код

function do_upload()
{   
    $categories = print '<script type="text/javascript">window.top.window.$("#categories").val();</script>';
}    

значение, которое я получил для $ category, всегда равно 1;

Ответы [ 3 ]

2 голосов
/ 04 октября 2009

Языковая конструкция PHP print () всегда возвращает 1.

PHP выполняется на стороне сервера. JavaScript выполняется на стороне клиента. Вы не можете смешивать их напрямую. Лучшее, что вы можете сделать, - это сделать так, чтобы JavaScript выполнял AJAX-вызов скрипта PHP на сервере.

0 голосов
/ 04 октября 2009

Лучшее, что вы можете сделать, это сделать 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, чтобы они были в нужном формате.

0 голосов
/ 04 октября 2009

PHP-код запускается на сервере (перед отправкой кода в браузер клиента) и JavaScript на клиенте (после отправки кода в браузер клиента). Я не уверен, что существует какой-либо другой способ передачи информации на сервер, кроме отправки запроса на сервер. поэтому, если вы хотите отправить что-то в ваше PHP-приложение (на стороне сервера), вам нужно будет отправить запрос из кода JavaScript (на стороне клиента). Вы можете использовать методы AJAX, но это вызывает запуск другого процесса PHP на сервере. поэтому вам нужно найти способ связи между базовым процессом PHP (который создал JavaScript) и новым процессом (который вызывается JavaScript) для передачи информации. Вы можете использовать сохранение данных на стороне сервера, например сеансы, файлы или базы данных, или решения для межпроцессного взаимодействия, такие как разделяемая память. но я думаю, что это будет немного сложнее в реализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...