我无法将查询结果传递给会话变量,我认为最简单的方法是通过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'];
答案 0 :(得分:0)
$_SESSION
是服务器端变量。您最有可能想要设置$_COOKIE
。这些都可以在客户端访问。
答案 1 :(得分:0)
除了发布的答案之外,您还可以创建一个jQuery post请求(或者您可以使用AJAX)并将JS会话作为值发送到PHP文件,您可以在该文件中访问该值并创建相应的PHP会话。
让我们说,你的JS函数:
class Child extends React.Component {
render() {
return (
<div>
<h1> test </h1>
</div>
);
}
}
<强>使用example.php 强>:
function setProduct(x){
var productID = x;
'<%Session["ProductID"] = "'+$products['productID']+'";%>';
// ...
$.post('example.php', { session_name: YOUR-SESSION-NAME, session_value: YOUR-SESSION-VALUE });
这不考虑您可能面临的安全问题。您应该在发送数据之前加密数据。