Php 在while循环中创建唯一的表单输入ID和输入名称
我有一个正在构建的表,并由while循环填充。while循环从mysql数据库获取和显示结果 根据下面的代码,每行上都有一个复选框,其值等于唯一标识符loadnumber 下一列是一个输入框,其名称和id为correctedweight。这个值也是由MySQL数据值预定义的。下一列是名为correctedtrailer的选择框,所选值再次等于数据库结果 我的sql查询结果中有许多行,因此我的表有几行深。我想做的是,允许用户选中复选框[],更改同一行上correctedweight和CorrectedRailer的值,然后提交表单。问题是,如果我有几行,那么我所有的correctedweight和CorrectedRailer的名称都是相同的,因此我无法区分它们Php 在while循环中创建唯一的表单输入ID和输入名称,php,forms,input,foreach,while-loop,Php,Forms,Input,Foreach,While Loop,我有一个正在构建的表,并由while循环填充。while循环从mysql数据库获取和显示结果 根据下面的代码,每行上都有一个复选框,其值等于唯一标识符loadnumber 下一列是一个输入框,其名称和id为correctedweight。这个值也是由MySQL数据值预定义的。下一列是名为correctedtrailer的选择框,所选值再次等于数据库结果 我的sql查询结果中有许多行,因此我的表有几行深。我想做的是,允许用户选中复选框[],更改同一行上correctedweight和Correct
<? 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中吗
从我看到的情况来看,您正在遍历数据库条目。我建议在所有字段中使用您的负载号作为标识符,然后在帖子中循环使用它,您可以像上面那样附加它 大概是这样的:
<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>
请记住,如果我记得正确,您将只获得选中的复选框:
希望这有帮助,祝你好运 试试$correctedweight{$checkbox}谢谢DoSparKot,这是最好的做法和最好的方法吗?通过$\u POST[correctedweight.$checkbox]或$\u POST['correctedweight.$checkbox]而不是$\u POST['correctedweight.$checkbox']访问索引。。因为单引号字符串中的变量将不会被解析。谢谢Werner,复选框名称是否不需要保留复选框[],否则每个选中的复选框将属于一个单独的数组?您可以这样做,但这样数组的键将是loadnumber,而不是默认的0,1,2,3。。如果你还需要钥匙,这会很有帮助:哦,太棒了。谢谢韦塞尔。
foreach($_POST['checkbox'] as $checkbox){
$correctedweight = $_POST['correctedweight_$checkbox'];
$correctedtrailer = $_POST['correctedtrailer_$checkbox'];
}