簡體   English   中英

如何將選定的表數據的特定行插入數據庫表?

[英]How to insert specific row of table data selected, into database table?

這是我的BAShop.php文件

<?php      
    if(isset($_POST['insert'])){                
    $queryinsert = "insert into cart(productid,productname,cartquantity,amount) SELECT productid,productname,'$_POST[cartquantity]', '50' FROM product WHERE productid='$_POST[hidden]'";       
   mysqli_query($dbconn,$queryinsert);                                             
    }   
    ?>
<script>                      
                function sortproduct(str) {

                        if (window.XMLHttpRequest) {
                            // code for IE7+, Firefox, Chrome, Opera, Safari
                            xmlhttp = new XMLHttpRequest();
                        } else {
                            // code for IE6, IE5
                            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                        xmlhttp.onreadystatechange = function() {
                            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                                document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
                            }
                        };
                        xmlhttp.open("GET","BAShopSort.php?q="+str,true);
                        xmlhttp.send();

                }

            </script>

這是我的ShopSort.php文件,我在其中執行我的Ajax,以便用戶可以單擊按鈕,並且頁面的更改無需刷新。

$q = $_GET['q'];
$sql="SELECT * FROM product WHERE productname like '$q%'";
$result = mysqli_query($dbconn,$sql);
echo "<table border=3>
<tr>
<th>Productid</th>
<th>Productname</th>
<th>Retailprice</th>
<th>Pointsformula</th>
<th>Quantity</th>
</tr>";
while($row = mysqli_fetch_array($result)) {   
echo "<tr><form method='POST'>";
echo "<td>"."<input type = 'text' id ='productid' name='productid' value=". $row['productid'] ."></td>";
echo "<td>"."<input type = 'text' id = 'productname' name='productname' value=". $row['productname'] ."></td>";
echo "<td>" . $row['retailprice'] . "</td>";
echo "<td>" . $row['pointsformula'] . "</td>";
echo "<td>"."<button type='button' class='quantityaddsub' id='sub' onclick='quantitysub(".$row['productid'].")'>-</button>".
                "<input type='text' class='quantity' name='cartquantity' id='quantity".$row['productid']."' value=1>". //**name of quanitty text
                "<button type='button' class='quantityaddsub' id='add' onclick='quantityadd(".$row['productid'].")'>+</button>".
"<input type='hidden' name='hidden' value=".$row['productid']."></td>";
echo "<td>" . "<input type='submit' id = 'insert' name='insert' value='Add To Cart'" . "></td>";
echo "</form></tr>";
}echo "</table>";

因此,在我運行BAShop.php文件之后,可以說我想將“ Soap”項添加到購物車 在此處輸入圖片說明 當我轉到購物車頁面時,肥皂不在那兒,而是洗發水在那兒。 在此處輸入圖片說明

請看一下我的代碼,讓我知道出了什么問題...我的學校項目在這個問題上呆了3個星期,時間已經用完了。僅供參考:我顯示的表格數據從mysql數據庫中獲取BAShop.php頁面的信息。

問題是,如果您的表中同時顯示了幾篇文章,那么您的文檔將包含幾個隱藏在同一表單中的輸入。 由於PHP處理POST變量的方式,因此在提交表單時僅考慮第一個變量。 這就是為什么無論如何都將表中顯示的第一篇文章(在您的示例中為肥皂)添加到購物車的原因。

要更改此設置,您可能想要為隱藏字段提供更具體的ID,並修改JS代碼以做出相應的反應,或者每行制作一張表格(這可能是解決問題的最快方法)。

PS:如果該腳本要在本地以外的其他任何地方運行,則還應注意那些SQL查詢。 它們很危險,不安全。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM