2017-02-19 7 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を使用することができます)を作成し、その値にアクセスして対応するPHPセッションを作成できるPHPファイルにJSセッションを送信できます。

は、あなたの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']; 
} 

これは、あなたがに直面する可能性が考慮のセキュリティ問題を考慮されていません。送信する前にデータを暗号化する必要があります。

関連する問題