提交内部循环多个ID的按钮?(购物车)

时间:2014-03-21 03:05:24

标签: php mysql

我想在PHp上创建购物车,

代码很简单,当客户填写QTY并单击按钮添加到购物车时,代码会将产品ID和数量保存到购物车表。但问题是循环中的Form。如何仅从客户点击按钮获取ID和数量。

程序看起来像这样

enter image description here

和这样的剧本

<?php

    if(isset($_POST[ADD]))
        {
            $qty   = $_POST[QTY];
            $harga = $_POST[HARGA_ASLI]; 
            $id    = $_POST[ID];

            print_r($_POST);
        }

         $kolom = 3;

        $sql = "SELECT *,FORMAT(harga,0)AS harga_digit FROM item";

        $hasil = mysql_query($sql);
        echo "<form method=POST action=index.php>";
        echo "<table>
               <tr>";
              $i = 0;
              while($data=mysql_fetch_array($hasil))
              {
                 if($i >= $kolom)
                 {
                    echo "</tr><tr>";
                    $i = 0;
                 }          
                 $i++;
                 echo "<td align='center'><br><a href='detailBarang.php?ID=$data[ID]'><img src='$data[img]' width='200' height='150'/><br>$data[nama_produk]</a><br>
                         Rp. $data[harga_digit]<br> 
                         <input type='submit' name='ADD' id='ADD' value='Add to Cart'>
                         <input type='text' name='QTY' id='QTY' placeholder='Qty' /><br>
                         <input type='hidden' name='HARGA_ASLI' id='HARGA_ASLI' value='$data[harga]' /><br>
                         <input type='hidden' name='ID' id='ID' value='$data[ID]' />
                         <br></td>";


              }//end of while

        echo "<tr></table>";
        echo "</form>"; 

  ?>

如果我填写数量并单击添加到购物车,则只有最后一个项目可以发布数据。

如何仅为客户选择发布数据?

我非常感谢您的回答。

由于

2 个答案:

答案 0 :(得分:1)

首先,让我们将您的MySQL转换为MySQLi。注释/ * * /中的更多解释:

<?php   
        $connection=mysqli_connect("YourHost","YourUsername","YourPassword","NameofYourDatabase");

if(mysqli_connect_errno()){

echo "Error".mysqli_connect_error();

}

$res=mysqli_query($con,"SELECT * FROM item");

while($row=mysqli_fetch_array($res)){

$nameofsubmitbutton=$row['ID'];

if(isset($_POST[$nameofsubmitbutton])){

$nameofproduct=$row['namaproduk'];
$nameofnumbersubmitted=$nameofsubmitbutton."number";
$quantity=$_POST[$nameofnumbersubmitted];

if(empty($quantity)){
echo "You wanted to buy a ".$nameofproduct."?<br>Type in a number so you can add it to your cart.";
}

else {
mysqli_query($connection,"INSERT INTO yourTable ('','') VALUES ('$quantity','$nameofproduct')");
echo "You bought ".$quantity." of ".$nameofproduct;
}

} /* END OF IF ISSET */

} /* END OF WHILE LOOP $RES */

$kolom = 3;

$hasil = mysqli_query($connection,"SELECT *,FORMAT(harga,0) AS harga_digit FROM item"); /* YOU SURE WITH THIS QUERY? */

echo "<form method=POST action=''>"; /* SUBMIT ON ITSELF */
echo "<table><tr>";

$i = 0; /* THIS WOULD ALSO SET AS YOUR COUNTER */
while($data=mysqli_fetch_array($hasil))
{

$id=$data['ID'];

if($i >= $kolom){

echo "</tr><tr>";
$i = 0;

} /* END OF IF $i >= $KOLOM */   

$i++;

echo "<td align='center'><br><a href='detailBarang.php?ID=$data[ID]'><img src='$data[img]' width='200' height='150'/><br>".$data[nama_produk]."</a><br>Rp. ".$data[harga_digit]."<br>"; /* IF TO ECHO VARIABLES, USE ".$variable." */

$numbername=$id."number";

echo "<input type='number' name='$numbername' id='QTY' placeholder='Qty' /><br>"; /* CHANGE YOUR INPUT TYPE TO NUMBER */

/* NO NEED FOR THE HIDDEN INPUT */

echo "<input type='submit' name='$id' id='ADD' value='Add to Cart'></td>"; /* CHANGE THE NAME OF SUBMIT BUTTON TO THE CORRESPONDING ID FROM YOUR TABLE */



} /* END OF WHILE LOOP */

echo "<tr></table>";
echo "</form>"; 

?>

我在我的本地计算机上试过了。你也应该。

这是一个示例屏幕截图。 enter image description here

答案 1 :(得分:0)

这可以解决问题:

<?php
  $kolom = 3;

  $sql = "SELECT *,FORMAT(harga,0)AS harga_digit FROM item";

  $hasil = mysql_query($sql);

  while($data=mysql_fetch_array($hasil))
  {
    if(isset($_POST['ADD'.$data[ID]]))
    {
        $qty   = $_POST['QTY'.$data[ID]];
        $harga = $_POST['HARGA_ASLI'.$data[ID]]; 
        $id    = $_POST['ID'.$data[ID]];

        print_r($_POST);
    }
  }
  echo "<form method=POST action=index.php>";
  echo "<table>
         <tr>";
        $i = 0;
        while($data=mysql_fetch_array($hasil))
        {
           if($i >= $kolom)
           {
              echo "</tr><tr>";
              $i = 0;
           }          
           $i++;
           echo "<td align='center'><br><a href='detailBarang.php?ID=$data[ID]'><img src='$data[img]' width='200' height='150'/><br>$data[nama_produk]</a><br>
                   Rp. $data[harga_digit]<br> 
                   <input type='submit' name='ADD'".$data[ID]." id='ADD' value='Add to Cart'>
                   <input type='text' name='QTY'".$data[ID]." id='QTY' placeholder='Qty' /><br>
                   <input type='hidden' name='HARGA_ASLI'".$data[ID]." id='HARGA_ASLI' value='$data[harga]' /><br>
                   <input type='hidden' name='ID' id='ID'".$data[ID]." value='$data[ID]' />
                   <br></td>";


        }//end of while

  echo "<tr></table>";
  echo "</form>"; 
?>