2016-03-28 6 views
0

私はカートを作りたい、私の製品はピザです。 私はテーブルにすべてのメニューをリストし、カートにメニューを送信するためのボタンを追加します。ボタンを押したときに複数の値から入力値を取得する方法

は、ここに私のindex.php

<?php 
require("connect.php"); 
$result = mysqli_query($con,'select * from menu'); 
?> 


<form action="cart.php" method="get"> 
    <table border="1" style="width:100%"> 
     <tr> 
      <th>Pizza Name</th> 
      <th>Price</th> 
      <th>Quantity</th> 
      <th>Buy</th> 
     </tr> 
     <?php while($product = mysqli_fetch_object($result)){ ?> 
      <tr> 
       <td><?php echo $product->nama_menu; ?></td> 
       <td><?php echo $product->harga_menu; ?></td> 
       <td><input type="number" name="quantity" min="1" max="20"></td> 
       <td><button type="submit" name="id" value="<?php echo $product->id_menu; ?>">Add To Cart</button></td> 
      </tr> 
     <?php } ?> 
    </table> 
</form>  

だが、私はボタン「カートに入れる」を押すと、メニューリストからすべての数量を送信し、私のcart.phpで読み取ることができません

ボタンを押したときに正しい数量値を取得する方法を教えてください。

+0

あなたの出力とあなたの望みの出力を表示してください。 – RJParikh

+1

ループ内のすべての入力に対して同じ名前を使用しています。配列名= "数量[]"にする –

+0

各ボタンに付いている簡単なjavascript関数を使うのが最も簡単な方法です( 'submit'ではなく' button'に変更する) – RamRaider

答えて

1

項目のそれぞれについて別々のフォームを作ります。以下のコードを試してください。

<?php 
require("connect.php"); 
$result = mysqli_query($con,'select * from menu'); 
?> 



    <table border="1" style="width:100%"> 
     <tr> 
      <th>Pizza Name</th> 
      <th>Price</th> 
      <th>Quantity</th> 
      <th>Buy</th> 
     </tr> 
     <?php while($product = mysqli_fetch_object($result)){ ?> 
      <form action="cart.php" method="get"> 
      <tr> 
       <td><?php echo $product->nama_menu; ?></td> 
       <td><?php echo $product->harga_menu; ?></td> 
       <td><input type="number" name="quantity" min="1" max="20"></td> 
       <td><button type="submit" name="id" value="<?php echo $product->id_menu; ?>">Add To Cart</button></td> 
      </tr> 
      </form> 
     <?php } ?> 
    </table> 
+0

それは、うまく動作します:D – Shasapo

0

名前の配列を使用して、それを送信すると、別の数量が与えられます。

<td><input type="number" name="quantity[<?php echo $product->nama_menu; ?>]" min="1" max="20"> 

出力: 量[ 'pizza1'] = 10 量[ 'pizza2'] = 20 ....

別のオプションは、多数の動的名前を使用することです。

<td><input type="number" name="quantity_<?php echo $product->nama_menu; ?>" min="1" max="20"> 

出力: quantity_pizza1 = 10 quantity_pizza2 = 20 ....

+0

これはあなたにとって有益なのかどうかです。フィードバックをお願いします。 @ Shasapo – RJParikh

+0

私もこれを試して、それは動作しますが、私はそれをシンプルに保ちたい、配列を使用しないでください。あなたの答えに感謝します:D – Shasapo

+0

はい、私はあなたに最適な別のオプションを追加しました。 @ Shasapo – RJParikh

関連する問題