【问题标题】:Submit Button with multiple ID Inside Looping?(Shopping Cart)提交按钮内循环有多个 ID?(购物车)
【发布时间】:2014-03-21 03:05:24
【问题描述】:

我想在 PHp 上创建一个购物车,

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

程序如下所示

还有这样的脚本

<?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>"; 

  ?>

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

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

非常感谢您的回答。

谢谢

【问题讨论】:

    标签: php mysql


    【解决方案1】:

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

    <?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>"; 
    
    ?>
    

    我在本地计算机上尝试过。你也应该这样做。

    这是一个示例屏幕截图。

    【讨论】:

    • 我已经尝试过您的建议,但仍然无效。我的项目显示,但如果我填写数量并单击添加购物车。什么都没有发生。我在 linux 上使用 PHP,或者我必须更改 PHP 设置才能将 mysql 转换为 mysqli?
    • 我的帖子正在运行。你应该仔细检查你的工作。无需更改设置。
    • 嘿,它的工作。非常感谢,问题只是变量的不同谢谢
    • 看!你只需要彻底检查。为了进一步改进您的购物车系统,您应该在其上添加一些会话,然后再添加一些 AJAX。祝你工作顺利!
    • 当然,我对 PHP 很陌生,在脚本工作之后,我仍然学习脚本是如何工作的。谢谢:D
    【解决方案2】:

    这可能会奏效:

    <?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>"; 
    ?>
    

    【讨论】:

    • Allan Sernal Dimaa 你确定 Isset 在循环中吗?
    • 还是不行,兄弟,我已经试试你的代码了。我的脚本有空白
    猜你喜欢
    • 2018-04-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    相关资源
    最近更新 更多