2016-10-26 6 views
0

マイカート内の商品はajaxによって保存され、セッションに設定されます。 私のコードをcart_functions.phpから見てください(ここではカート内のボタンの機能です)。foreachループからのセッション変数の設定解除PHP

if (isset($_GET['action'])) { 
    $action = $_GET['action']; //get button action name 
    $prod = $_GET['prod_id']; // id of the product 
    $prodname = 'product_'.$prod;// name of the product 



switch ($action) { 
    case 'add': 
     $result = add_prod($prod, $prodname); 
    break; 
    ///rest of switch....(not important for now) 

これは、このセッションの名前は次のようであるセッションに

function add_prod($prod, $prodname){ 
    //add function 
$_SESSION[$prodname] = 1; 
return ['result'=>'success']; 
} 

を、製品を追加する機能です - >$_SESSION['product_123']など

[OK]をので、今、私はすべての設定を解除したいです$_SESSION[$prodname]$_SESSION[$prodname]$_SESSION['product_123']です。 私のカートの中には複数のものがあります$_SESSION[$prodname]クライアントが注文を出すときに私は設定を解除したいと思います。 どうすればすべて$_SESSION['product_123'],$_SESSION['product_1234']...and so onを入手できますか?私はこれが私のプロダクトをカウントするために私はここにいたヘルプからコードを使用されるが、場合に役立ちます知らない

...)(

$product_count = count(array_filter(array_keys($_SESSION), function($x) { 
      return substr($x, 0, 8) == 'product_'; 
      })); 

答えて

1

方が良い私は私の設定を解除したいそれはあなたの製品を通じて簡単にループできるようにすると、あなたは、単に

unset($_SESSION['products'])

+0

'$ _SESSION ['products'] [$ id]'の方がはるかに優れているので、 '$ _SESSION ['name here'] [idはここ] ' –

1

トライsession_destroyを見てreset.phpのような新しいファイルに何かを作成し、あなたは、これはすべてのセッションで使用すると、特定のセッション要素の設定を解除するために望んでいるた時点で間違いなく

+0

ことによってそれをリセットすることができ、アレイ

$_SESSION['products'][$id]

を使用したいですproducts_ $ id、すべてのセッションのメイトではない –

2

を消去session_destroy()を置くことがすべてであるべきとあなたが

unset($_SESSION[$product]); 

を試してみましたそれが必要です。あなたのコードを検索しましたが、何も設定を解除しようとしていた場所を見つけることができませんでした。

+0

omgが忘れてしまったので、私のコードを更新します –

+0

を更新しました。 postOrder.phpのリンクを見てください –

+0

それを得ました - 私に教えてください、新しい注文は正常に挿入されていますか? – WEBjuju

関連する問題