嗨,我是相当新的php,我目前正在制作一个网页,类似于超市使用的库存管理控制作为分配的一部分。我有以下的形式,其中收银员将输入产品Id和正在购买的项目的数量。
然后表单将调用另一个名为cashsale.php的php文件,该文件将接受这些输入并更新数据库中的表,以便超市货架上的库存水平与新数量(即旧数量-输入数量)保持一致,并且可以在需要重新订购时建议管理。
因为它是表单工作得很好,但是我被建议以一种方式编辑它,收银员可以在提交之前输入多个产品和数量(即表单将再次显示自己),并允许用户在实际将值提交给cashsale.php以操纵表之前编辑或删除任何项目。我似乎不知道如何才能做到这一点。
我想创建一个名为"添加"的新按钮,它将再次显示表单,即允许用户检查更多的项目,但我很困惑,如何做到这一点,以及如何我将能够更新表,然后因为我将有更多的然后只是2个输入。
有谁能帮我一下吗?提前感谢。下面是我的html表单:center form action="cashsale.php" method ="post"
Product ID: <input name= "id" type="int" > <br>
Quantity:<input name="qty" type="int">
<input type="button" name = "Add" onclick="add">
<input type="Submit" name ="Submit" value = "Submit">
form center
我不允许使用html标签的形式和中心,所以我删除了<>。下面是对cashsale.php文件所做的一些修改,只是为了给出一个更清晰的示例。
$result = mysql_query("SELECT * FROM shelfingdetails where prodId =' " .$id. " '");
if (!$result){
die (mysql_error());
}
while ($row =mysql_fetch_array($result))
{
$qtyOnShelf= $row ['QtyOnShelf'];
$max=$row['max'];
$newQtyShelf=$qtyOnShelf-$qty;
}
$update=mysql_query("UPDATE shelfingdetails SET QtyOnShelf ='". $newQtyShelf. "' where prodId = '". $id. "';");
我希望有人能帮忙。谢谢!
你只需要传递一个数组。为此,您必须使用PHP或javascript生成输入(我将使用jQuery来保持代码美观和简单)。如果使用PHP:
// PHP
<?php
if(isset($_POST['submit']) && $_POST['submit']){
//save data
} elseif(isset($_POST['Add']) && $_POST['Add']) {
$max = (int)$_POST['max']
} else { $max = 1; }
?>
<form action="" method="post">
<?php
for($i = 0;$i < $max;$i++){
?>
Product ID: <input name="id[]" type="int" > <br>
Quantity: <input name="qty[]" type="int">
<?php
}
?>
<input type="hidden" name="max" value="<?= $i; ?>" />
<input type="submit" name="Add" />
<input type="submit" name="Submit" value="Submit" />
</form>
如果你使用Javascript:
//HTML
<form action="" method="post" id="form">
<div id="add">
Product ID: <input name="id[]" type="int" > <br>
Quantity: <input name="qty[]" type="int">
</div>
<input type="hidden" name="max" value="<?= $i; ?>" />
<input type="button" name="Add" onclick="addRow();" />
<input type="submit" name="Submit" value="Submit" />
</form>
// jQuery
function addRow(){
$("#add").append("<br />Product ID: <input name='id[]' type='int' >" +
"<br />Quantity: <input name='qty[]' type='int'>");
}
您必须使用id[]
和qty[]
将它们作为数组传递,并使用add按钮生成尽可能多的它们。像这样:
Product ID: <input name="id[]" type="int" > <br>
Quantity: <input name="qty[]" type="int"> <br>
Product ID: <input name="id[]" type="int" > <br>
Quantity: <input name="qty[]" type="int"> <br>
Product ID: <input name="id[]" type="int" > <br>
Quantity: <input name="qty[]" type="int">
<input type="button" name = "Add" onclick="add">
然后在背面使用for循环保存所有数据。
$max = count($_POST['id']);
$id = $_POST['id'];
$newQtyShelf = $_POST['qty'];
for($i = 0;$i < $max;$i++){
$update=mysql_query("UPDATE shelfingdetails
SET QtyOnShelf ='". (int)$newQtyShelf[i]. "'
WHERE prodId = '". (int)$id[i]. "';");
}
我只是想向你展示这个想法,请不要使用这个特定的代码,因为你应该使用mysqli而不是mysql和mysqli_escape_string来确保用户不会提交错误的数据