[英]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.