我正在尝试更新有多个商品的购物车中的数量,
例如 -
var get id of order item
var get quantity
post both to updateqty.php
在订单上有多行,有多个文本框,其id为qty,多个隐藏的输入,其id为part,所以它只能在它在该页面上找到的第一个id上工作,我需要它才能更新订单中的其他项目
所以例如
get class of the textbox, then find out which qty is being updated, then update the quantity of the item.
如果有人知道如何做到这一点,我们将不胜感激。
<script>
function updateqty() {
var ud_first = document.getElementById('part').value;
var ud_last = document.getElementById('qty').value;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("cart").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "php/updateqty.php?order=<?php echo $order; ?>&id=" + ud_first + "&qty="+ud_last, true);
xmlhttp.send();
}
</script>
<?php
$sql="SELECT * FROM `orders` WHERE `invoice` = '".$order."' ORDER BY id DESC";
$result = mysql_query($sql);
echo"
<table id='POITable' width='100%' border='1'>
<tr>
<td>SKU</td>
<td>QTY</td>
<td width='45%'>item</td>
<td>Unit Price</td>
<td>Line Price</td>
<td>Delete</td>
</tr>";
while($row = mysql_fetch_array($result))
{
echo"<tr><td>" . $row['part'] . "</td><td><form name='test'>
<input type='hidden' value='" . $row[id] . "' id='part'> <input type='text' id='qty' value='" . $row['qty'] . "' onblur='updateqty(this.id)'></form></td><td>" . $row['description'] . "</td><td>" . $row['price'] . "</td><td>" . $row['lineprice'] . "</td><td> <input type='image' src='images/btn_delete.png' value='" . $row[id] . "' onclick='deletesku(this.value)' height='30'/></td>
";
}
?>
插入php是
$id=$_GET[id];
$sql2="SELECT * FROM `orders` WHERE `id` = '".$id."'";
$result2 = mysql_query($sql2);
$row2 = mysql_fetch_array($result2);
$order=$_GET[order];
$qty=$_GET[qty];
$sql="SELECT * FROM `stock` WHERE `part` = '".$part."'";
$result = mysql_query($sql);
$row1 = mysql_fetch_array($result);
$lineprice=$qty * $row2[price];
$sqlins1 = "UPDATE `orders` SET qty='$qty', lineprice='$lineprice' WHERE id = '".$id."'";
是html中的ids,有多个NOT THE MYSQL TABLE
所以我需要它来购买购物车中产品的ID并通过ajax更新该ID的数量
脚本的重要部分是
function updateqty() {
var ud_first = document.getElementById('part').value;
var ud_last = document.getElementById('qty').value;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
}
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
document.getElementById("cart").innerHTML = xmlhttp.responseText;
}
}
xmlhttp.open("GET", "php/updateqty.php?order=<?php echo $order; ?>&id=" + ud_first + "&qty="+ud_last, true);
xmlhttp.send();
}
</script>
<?php
$sql="SELECT * FROM `orders` WHERE `invoice` = '".$order."' ORDER BY id DESC";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result))
{
echo"<tr><td>" . $row['part'] . "</td>
<td>
<form name='test'>
<input type='hidden' value='" . $row[id] . "' id='part'>
<input type='text' id='qty' value='" . $row['qty'] . "' onblur='updateqty(this.id)'></form>
</td><td>" . $row['description'] . "</td><td>" . $row['price'] . "</td><td>" . $row['lineprice'] . "</td><td> <input type='image' src='images/btn_delete.png' value='" . $row[id] . "' onclick='deletesku(this.value)' height='30'/></td>
";
}
提前致谢
答案 0 :(得分:1)
所以你说你正在使用SQL Update语句吗?如果您需要帮助,请至少向我们展示SQL查询。 SELECT语句没有用,因为UPDATE已经破坏了。 如果你遇到麻烦,SQL UPDATE语句的执行也非常简单,因为你做了0次研究。
我会尝试用您提供的有限数量的代码来帮助您。更新应该看起来像这样
UPDATE <tablename> SET QTY=$qty AND SKU=$sku WHERE id=$id
如果您要创建购物车,则需要的数量超过要存储的数量。你不能只有一个6个数量的购物车,无法知道数量是多少。我建议你创建一个包含用户ID和项目ID和数量的表。然后,当此人添加到购物车时,插入一个新行,其中包含用户ID,项目ID和数量。然后,当用户进入购物车时,您可以使用商品ID调用商品表,以获取有关商品的所有信息,例如成本等。
答案 1 :(得分:-1)
function updateqty() {
var str="$(this).attr('name')";
var orderCode=str.slice(9,-1);
var quantity = $(this).value;
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()
{
xmlhttp.open("GET","updateqty.php?order=<?php echo $order; ?>&id=" + orderCode + "&qty=" + quantity,true);
xmlhttp.send();
}
</script>
<div id="cart">
<?php
$sql="SELECT * FROM `orders` WHERE `invoice` = '".$order."' ORDER BY id DESC";
$result = mysql_query($sql);
echo"
<table id='POITable' width='100%' border='1'>
<tr>
<td>SKU</td>
<td>QTY</td>
<td width='45%'>item</td>
<td>Unit Price</td>
<td>Line Price</td>
<td>Delete</td>
</tr>";
while($row = mysql_fetch_array($result))
{
echo"<tr><td>" . $row['part'] . "</td><td>
<input type='text' name='quantity[779]' size='3' value='" . $row['qty'] . "' tabindex='1' onblur='updateqty(this.value)' />
</td><td>" . $row['description'] . "</td><td>" . $row['price'] . "</td><td>" . $row['lineprice'] . "</td><td><img src='images/btn_delete.png' onclick='deleteRow(this)' height='30'/></td>
";
}