gpt4 book ai didi

php - MySQL 中的动态复选框和文本字段

转载 作者:行者123 更新时间:2023-11-29 00:44:38 25 4
gpt4 key购买 nike

我正在尝试创建库存跟踪器。我的问题是库存可以是从 1 件到 1 公制对接(给或取)的元素。基本形式是这样的:

eq.issue.php

<form name="form" method="post" action ="issue.e.php">
<?
$kit_query = mysql_query("SELECT * FROM eq_kit");
while($fetch_kits = mysql_fetch_array($kit_query){
$kitId = $fetch_kits['kit_id'];
$kitSn = $fetch_kits['kit_sn'];
$kitQty = $fetch_kits['kit_qty'];
?>
<tr>
<td>
<input type="checkbox" name="kit_row[]" value="<?=$kitId?>" id="<?=$kitId?>">
</td>
<td>
<input name="qty[]" type="text" id="<?=$kitQty?>" value="<?=$kitQty?>">
</td>
<td>
<input name="sn[]" type="hidden" id="<?=$kitSn?>" value="<?=$kitSn?>"
</td>
</tr>
<? } ?>
<input type="submit" name="Submit" id="Submit" value="Submit">
</form>

在接收方:

issue.e.php

<? // all the database crap

if(is_array($kit_row)){
foreach($_POST['kitrow'] as $key=>$val){
$sn=$_POST['sn'];
$serial = $sn[$val];
$qty = $_POST['qty'];
$quant = $qty[$val];

mysql_query("INSERT INTO eq_issue SET issue_sn = '$serial', issue_qty = '$quant'")or die(mysql_error());

这适用于单个项目以及连续项目。

以我的 eq.issue.php 表单为例:

|Check | Qty | SN  |
====================
| X | 100 |12345|
| | 1 |23456|
| | 1 |98765|
| X | 999 |19283|
====================
|Submit|

我的问题是,如果我选择第一个和第四个选项,数组现在显示如下:

kit_row => Array
0 => 4
1 => 3

qty => Array
0 => 100
1 => 1
2 => 1
3 => 999

sn => Array
0 => 12345
1 => 23456
2 => 98765
3 => 19283

因此,当我的脚本运行时,我得到第 4 个选项的值 kit_row => 3 qty => 1 sn=> 23456,我希望它显示 kit_row=> 3 qty => 999 sn => 19283 .

关于如何使这项工作有任何建议吗?为了获得更好的视觉引用,我试图实现与 PHPMyAdmin 的多值插入页面相同的概念,使用复选框来说明我要插入的记录组(或行)。

最佳答案

您可以通过 $_POST['qty']$_POST['sn'] 代替 $_POST['kit_row'].

或者使用 kit_id 作为表单字段的索引,这样可以在服务器端知道什么是什么:

<input type="checkbox" name="kit_row[<?=$kitId?>]" value="1">
<input name="qty[<?=$kitId?>]" type="text" id="<?=$kitQty?>" value="<?=$kitQty?>">
<input name="sn[<?=$kitId?>]" type="hidden" id="<?=$kitSn?>" value="<?=$kitSn?>">

这样您就可以使用数据库中的 ID 访问服务器上发布的数据,而不是像这样使用 0、1、2...:

if (is_array($_POST['kit_row']))
{
foreach ($_POST['kit_row'] as $kitId => $val)
{
$sn=$_POST['sn'];
$serial = $sn[$kitId];
$qty = $_POST['qty'];
$quant = $qty[$kitId];

也可以在每个复选框前添加一个具有相同名称和值 0 的隐藏字段。不过,您必须用真实索引替换 kit_row[]:

<input type="hidden" name="kit_row[<?php echo $i; ?>]" value="0">
<input type="checkbox" name="kit_row[<?php echo $i++; ?>]" value="1">

通过这种方式,值在两种情况下都被提交,勾选和未勾选。

关于php - MySQL 中的动态复选框和文本字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10964891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com