人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPについて質問です。
SESSIONに連想配列で値を入れているのですが、一杯入っているデータから選択した値を削除したいと考えています。
具体的には、現在ショッピングカートのページを作成しているのですが、確認画面のページで購入した商品でいらなくなった商品を一商品ずつ削除できるようにしたいと考えています。
$_SESSION["cart"]には商品を購入するのボタンを押すと、連想配列で管理番号と購入個数が入るようになっています。

$kanri_no = $_POST["kanri_no"];
$_SESSION["cart"]["$kanri_no"] = $_POST["kosuu"];

$_SESSION["cart"]に入っている値を、確認ページで商品を削除するのボタンを押すと商品の管理番号を元に削除したいと考えています。
管理番号は<input type="hidden" name="kanri" value="各管理番号が入っています。">
の様に、hiddenのvalue値に入っている管理番号を元に照合したいと思っています。
しかし、やり方がわかりません。。
$_SESSION["cart"] から $_SESSION["cart"]["$kanri_no"] を個別に削除するにはどうすればいいでしょうか?
$_SESSION["cart"] ? ($_POST["kanri"]の管理番号と個数) をどうしてもしたいです。。
お手数をおかけしますが、わかるかたおりましたらご回答よろしくお願いいたします。




●質問者: aiomock
●カテゴリ:コンピュータ インターネット
✍キーワード:CART カート ショッピング データ ボタン
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● code_tk
●23ポイント

普通にunsetを呼び出せばいいと思いますが

http://php.s3.to/man/function.session-unset.html

こんな感じでしょうか

unset($_SESSION["cart"]["$kanri_no"]);

◎質問者からの返答

ご回答ありがとうございます。


2 ● あのん
●23ポイント

unset() 関数でその配列のキーと値を開放することで実現できます。

具体的には

unset( $_SESSION["cart"][$_POST["kanri"]] );

とすることでその管理番号をキーとする値と配列が除去されます。

それ以外のものは除去されません。

詳しくはこちらをご覧ください。

http://jp.php.net/unset

◎質問者からの返答

ご回答ありがとうございます。


3 ● p332
●22ポイント

unsetを使えば消せます。

unset($_SESSION["cart"][$kanri_no])

◎質問者からの返答

ご回答ありがとうございます。


4 ● rouge_2008
●100ポイント ベストアンサー

以下のようにして、個数が0個以外の時に出力するようにしてみてください。

foreach ($_SESSION["cart"] as $kanri_no=>$kosuu){
if($kosuu != 0) { // ここを追加
echo '<tr><td><FORM method="POST" action="kakunin4.php">';

次に、分岐処理の終わりを以下の部分に記述します。

echo '<td><input type="submit" name="delete" value="削除する"></td></form>';

echo '</tr>';}} // ここに「}」を一つ追加

※この場合は、購入商品が全く無くても項目名などテーブル自体は表示されます。

◎質問者からの返答

ご回答ありがとうございます。無事解決できました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ