1

まず、これは私にとって初めての PHP ストアです。

$_SESSION短い形式:ページの各アイテムに個別のフォームを使用せずに、PHP ショッピング カートの変数に一連の値を渡すにはどうすればよいですか?

これが状況です。お店づくりを目指しています。各ページの製品は MySQL データベースから呼び出され、コスト別に編成されます。これはすべて完璧に機能しています。

私が直面している問題は、アイテムのオプションに関するものです。ボール キャップ、T シャツ、その他のさまざまな商品など、これらのアイテムの一部には、複数のサイズ/色があります。これを整理した方法は、条件に一致する MySQL テーブルの各エントリが、サイズと色のオプション (該当する場合) を含む独自の形式に出力されることです。これで私が抱えている問題は、これらを別のページに投稿できるように見えますが、変数に割り当てることができないようです。

フォームを完全に廃止し、次のようなハイパーリンクを使用したいと思います: カートに追加しますが、それがオプションかどうかはわかりません。いくつかのアイテムのサイズと色の値を渡す必要があります。

これは以前にも頻繁に行われたことは知っていますが、ここで Google に助けてもらうことができないようです。アドバイス/ヒント/トリックは大歓迎です。

以下は、私が始めたときに良いと思った複数のフォームメソッドを使用した現在のコードです。

<?php
while($row = mysql_fetch_array($data)){
  echo "<form method='post' action='addcart.php'>";
  echo "<tr><td><img width='100' width='100' src='itemImages/" . $row['itemIMG'] . "'/></td>
  <td>" . $row['itemNAME'] . "</td>
  <td><p id='description'>" . $row['itemDESC'] . "</p></td> <td>";
  //Color dropdown population happens here
  if($row["itemCOL1"] != ' '){
    echo "<select name=colors>";
    $finished = 'false';
    $i = '0';
    $colrow = mysql_fetch_array($coldata);
    while($finished != 'true'){
       if($colrow[$i] != ' '){  
         echo "<option value=" . $colrow[$i] . ">" . $colrow[$i] . "</option>";
         $i++;
    } else {
      echo "</select>";
      $finished='true';
    }
   }
  }
//Size option dropdown handled here
if($row['itemHSIZ'] != "N"){
  echo "<select name=prodSizes>";
  echo "<option value=X-Small>X-Small  </option>";
  //Sizes omitted for brevity
  echo "</select>";
  }
echo "<input type='hidden' name='prodName' value='" . $row['itemNAME'] . "' />";
echo "<input type='submit' name='submit' value='Submit' /></form>";
};
//...and above here.
mysql_close($con);
?>
4

2 に答える 2

1

フォームを開いてフォームを閉じ、while ループの外側に移動して、すべてのアイテムを 1 つのフォーム、つまり 1 つの投稿にすることができると思います。

<?php
  echo "<form method='post' action='addcart.php'>";
while($row = mysql_fetch_array($data)){
  echo "<tr><td><img width='100' width='100' src='itemImages/" . $row['itemIMG'] . "'/></td>
  <td>" . $row['itemNAME'] . "</td>
  <td><p id='description'>" . $row['itemDESC'] . "</p></td> <td>";
  //Color dropdown population happens here
  if($row["itemCOL1"] != ' '){
    echo "<select name=colors>";
    $finished = 'false';
    $i = '0';
    $colrow = mysql_fetch_array($coldata);
    while($finished != 'true'){
       if($colrow[$i] != ' '){  
         echo "<option value=" . $colrow[$i] . ">" . $colrow[$i] . "</option>";
         $i++;
    } else {
      echo "</select>";
      $finished='true';
    }
   }
  }
//Size option dropdown handled here
if($row['itemHSIZ'] != "N"){
  echo "<select name=prodSizes>";
  echo "<option value=X-Small>X-Small  </option>";
  //Sizes omitted for brevity
  echo "</select>";
  }
echo "<input type='hidden' name='prodName' value='" . $row['itemNAME'] . "' />";
};
echo "<input type='submit' name='submit' value='Submit' /></form>";
//...and above here.
mysql_close($con);
?>

これが意図したものでない場合はお知らせください。

于 2012-09-05T16:41:11.833 に答える
0

JavaScriptを使用して両方を実行する方法がいくつかあります。JavaScriptを使用して、カートに追加ボタン/リンクに添付されたonclickイベントを使用してphpスクリプトにajax呼び出しを行うことができます。または、オプションが選択されている場合、JavaScriptを使用してカートに追加リンクにパラメーターを追加できます。

それは理にかなっていますか?

PSはそのようなpタグでidを使用しません。id値を一意に保ちたい。

于 2012-09-05T18:51:57.850 に答える