-2

誰かが私が抱えている問題を解決してくれることを願っています。現在、簡単なウェブショップを作ろうとしています。最初の情報:

商品aと商品bの2種類の商品があります。いずれも18色・3サイズ展開。商品 a を購入したい場合は、商品 a のページに移動し、色とサイズを選択して、バスケットに追加するだけです。

私が抱えている問題は、セッションに色とサイズをうまく保存できないことです。現在、製品のIDと数量を次のようなセッションに保存しています:

 if (isset($_GET['add'])) {
      $_SESSION['cart_'.(int)$_GET['add']]+='1'; 
 }

セッションの結果は次のとおりです: cart_1 1. これは、ID 1 の製品の 1 がショッピング バスケットに追加されたことを意味します。しかし、私がやりたいのは、私のセッションでも、送信された色とサイズを教えてくれることです。($_POST['colour'] と $_POST['size']。問題は、このように保管すると、製品 a を 1 つと製品 b を 1 つしか注文できないことです。別の製品 a は、cart_1 の 1 と同じで、色が異なります。

前もって感謝します!

4

1 に答える 1

1

すべてのオプションが適切な形式でラップされていると仮定すると、各入力に ID を与えることができます。

フォームを処理する現在のページに移動したら、ID を参照して入力に簡単にアクセスできます。

例:

<form id="mainForm" method="POST" action="scriptUrl.php">
    <input type="text" id="color" value="" />
    <input type="text" id="size" value="" />
    <input type="submit" id="submitFormButton" value="Submit" />
</form>

次に、そのような値に簡単にアクセスできます(フォームが送信されると):

$color = isset($_GET['color']) ? $_GET['color'] : "";
$size = isset($_GET['size']) ? $_GET['size'] : "";

三項演算子を使用します。

必要に応じてこれをセッションに追加できますが、単一の値に対して単一のセッションを使用することをお勧めします。つまり、本当にセッションを使用する必要があると感じた場合です。他のオプションがあり、場合によってはより適切です。

入力テキストを使用していないことは知っていますが、例を簡単に変更できます。

GET を使うか POST を使うかは人によって異なりますが、私は POST の方が好きです。

于 2013-11-06T23:56:26.930 に答える