У меня проблемы с передачей результата запроса в переменную сеанса, я думаю, что самый простой способ сделать это через 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'];
$_SESSION
переменная на стороне сервера Скорее всего, вы хотите установить $_COOKIE
вместо. Они доступны на стороне клиента.
В дополнение к опубликованному ответу вы можете создать пост-запрос 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'];
}
Это не принимает во внимание проблемы безопасности, с которыми вы можете столкнуться. Вы должны зашифровать свои данные перед отправкой.