jQuery click событие для изменения переменной сеанса php - PullRequest
2 голосов
/ 07 октября 2009

Каков наилучший подход к этому?

Потому что, как я обнаружил (и это имело смысл, только после того, как я попробовал это: p), вы не можете установить переменную PHP в условиях javascripts. (Duurrhh)

Единственное решение, которое я могу придумать, - это выполнить AJAX-вызов небольшого PHP-файла, который обрабатывает переменные сеанса

elm.click(function() {
   $.post("session.php", { "hints":"off" });
   turnOffHints();
}

А затем пусть session.php справится с установкой новой переменной.

Но это выглядит как пустая трата, чтобы выполнить полный http-запрос только для установки одной переменной в PHP ...

Ответы [ 2 ]

7 голосов
/ 07 октября 2009

Javascript (jQuery) выполняется на стороне клиента.

PHP и его сеансовый механизм выполняются на стороне сервера.

Таким образом, чтобы сделать что-либо, связанное с сеансом PHP, вам нужно перейти на сервер , выполнив полный HTTP-запрос - вы не можете оставаться на стороне клиента.

Выполнение Ajax-запроса - это способ перехода на сервер - работает отлично ;-)
То, что вы делаете, в порядке (и на самом деле необходимо) , если вы хотите повлиять на некоторые данные сеанса: у вас нет большого выбора, даже если вы чувствуете, что это какая-то трата .

3 голосов
/ 07 октября 2009

Единственная альтернатива - сделать «обычный запрос», но это было бы еще более «расточительно».

Или, может быть, вы можете установить cookie-файл с JavaScript и изменить сеанс при поступлении следующего запроса (вам придется проверять этот cookie-файл при каждом запросе) ...

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