2017-02-19 3 views
2

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

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

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']; 
+0

Javascript не имеет доступа к переменным сеанса ...? – junkfoodjunkie

ответ

0

$_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']; 
} 

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

Смежные вопросы