Передача части результата запроса в переменные сеанса с помощью Javascript

У меня проблемы с передачей результата запроса в переменную сеанса, я думаю, что самый простой способ сделать это через Javascript. У меня есть результат запроса, но они не будут переданы в переменную сеанса. В конце каждой строки результата запроса у меня есть кнопка добавления, которая активирует функцию JS для добавления в переменную сеанса.

Результат запроса:

echo '<tr><td>'.$products['Name'].'</td><td>£'.$products['Price'].'</td><td>'.$products['Category'].'</td><td><img src="'.$products['Image'].'" width=100px /></td><td>'.$products['ProductID'].'</td><td><button onclick="setProduct('.$products['ProductID'].')">Add to Basket</button></td></tr>';

Функция JS:

function setProduct(x){

var productID = x;
'<%Session["ProductID"] = "'+$products['productID']+'";%>';

Код, отображающий содержимое переменной сеанса:

echo $_SESSION['ProductID'];

2

Решение

$_SESSION переменная на стороне сервера Скорее всего, вы хотите установить $_COOKIE вместо. Они доступны на стороне клиента.

0

Другие решения

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

Допустим, ваша JS-функция:

function setProduct(x){

var productID = x;
'<%Session["ProductID"] = "'+$products['productID']+'";%>';

// ...

$.post('example.php', { session_name: YOUR-SESSION-NAME, session_value: YOUR-SESSION-VALUE });

example.php:

if (isset($_POST['session_name']) && isset($_POST['session_value'])) {
$_SESSION[$_POST['session_name']] = $_POST['session_value'];
}

Это не принимает во внимание проблемы безопасности, с которыми вы можете столкнуться. Вы должны зашифровать свои данные перед отправкой.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector