0

我有一个由while循环构建和填充的表。while 循环正在从 mysql 数据库中获取并显示结果。

根据下面的代码,每一行都有一个复选框,值等于一个唯一标识符loadnumber

下一列是一个输入框,其名称和 ID 为correctedweight。再次, this 的值是由 MySQL 数据值预定义的。下一列是一个名为的选择框correctedtrailer,并且所选值再次等于数据库结果。

我的 sql 查询结果中有很多行,所以我的表有几行深。我想要做的是允许用户选中复选框checkbox[],更改同一行的 和 的值,correctedweight然后 correctedtrailer提交表单。问题是,如果我有几行,所有 mycorrectedweight和的名称correctedtrailer都相同,所以我无法区分它们。

<? while($row = $loads->fetch(PDO::FETCH_ASSOC)) { ?>
<tr>        
    <td><input type="checkbox" name="checkbox[]" id="checkbox[]" value="<? echo $row['loadnumber']; ?>"></td>
    <td><input type="text" name="correctedweight" id="correctedweight" value="<? echo $row['weight']; ?>" class="inputsmall"></td>
    <td><SELECT name="correctedtrailer" id="correctedtrailer"  class="selectnarrow"> 
    <OPTION value="<? echo $row['trailer']; ?>" selected ><? echo $row['trailer']; ?></option>
    <option>
    <?=$optionstrailer?> 
    </option>
    </SELECT> 
    </td>
</tr>

要解决这个问题,我可以将 loadnumber 附加到每个输入字段的名称和 id 吗?

<input type="text" name="correctedweight<? echo $row['loadnumber']; ?>" id="correctedweight<? echo $row['loadnumber']; ?>" value="<? echo $row['weight']; ?>" class="inputsmall">

然后,这将为我的表单的每个输入提供一个唯一的名称。下一个问题是如何为所选行调用此名称?该checkbox[]数组将包含负载编号,因此在我的foreach($_POST['checkbox'] as $checkbox){语句中,我如何获得 的值 correctedweight<? echo $row['loadnumber']; ?>?是 $_POST['correctedweight.$checkbox'] 还是它是如何工作的?

另外这是最好的方法吗?

一如既往的帮助。谢谢

我的表单、输入和选择字段的图像预填充了 MySQL 数据。希望能够一次检查和编辑多个表行,但需要一个唯一标识符作为使用while循环构建的表。再次感谢。 在此处输入图像描述

4

1 回答 1

2

据我所知,您正在循环访问数据库条目。我建议在所有字段中使用您的负载编号作为标识符,然后在帖子中循环遍历它,您可以像上面那样附加它。

像这样的东西:

<td><input type="checkbox" name="checkbox[<? echo $row['loadnumber']; ?>]" id="checkbox[<? echo $row['loadnumber']; ?>]" value="<? echo $row['loadnumber']; ?>"></td>
<td><input type="text" name="correctedweight_<? echo $row['loadnumber']; ?>" id="correctedweight_<? echo $row['loadnumber']; ?>" value="<? echo $row['weight']; ?>" class="inputsmall"></td>
<td><SELECT name="correctedtrailer_<? echo $row['loadnumber']; ?>" id="correctedtrailer_<? echo $row['loadnumber']; ?>"  class="selectnarrow"> 
    <option value="<? echo $row['trailer']; ?>" selected ><? echo $row['trailer']; ?></option>
    <option><?=$optionstrailer?></option>
</SELECT> 

获取帖子中每个复选框的信息:

foreach($_POST['checkbox'] as $checkbox){
    $correctedweight = $_POST['correctedweight_$checkbox'];
    $correctedtrailer = $_POST['correctedtrailer_$checkbox'];
}

请记住,如果我记得正确,您只会得到被选中的复选框:)

希望这有帮助,祝你好运!

于 2013-02-15T08:40:34.527 回答