使用Javascript将查询结果的部分传递到会话变量中

时间:2017-02-19 23:11:48

标签: javascript php html

我无法将查询结果传递给会话变量,我认为最简单的方法是通过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 个答案:

答案 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 });

这不考虑您可能面临的安全问题。您应该在发送数据之前加密数据。