我有一个动态添加复选框的表单 - 每个复选框和一个隐藏字段。我只需要在提交时与隐藏字段成对显示的选中值。
这就是我所拥有的:
<input type="checkbox" name="valg[]" value="<?=$hent_data[id]?>" />
<input type="hidden" name="process_id[]" value="<?=$hent_data[process_id]?>" />
<?php
if($_POST[submit] != ""){
$arrlength=count($_POST[valg]);
for($x=0;$x<$arrlength;$x++) {
$dimen1 = $_POST[valg][$x];
$dimen2 = $_POST[process_id][$x];
echo $hest = "INSERT INTO chosen (kat_ref, prod_ref, process_id) VALUES ($dimen1, '', $dimen2)"."<br/>";
}
}
?>
提交后,我检查了正确的行数,并使用正确的复选框值,但问题出在隐藏文本输入中。提交时,它会列出所有隐藏的值。
让我们以10个复选框(和隐藏文本输入)的形式说我已经勾选了3个复选框我希望确切的3个隐藏文本输入框与勾选的复选框一起收听,但它会将它们全部返回,这意味着无论我检查多少个复选框,它都会解析所有隐藏的值字段。
有什么想法吗?
我希望你明白 - 或者让我知道; - )
答案 0 :(得分:1)
从讨论开始,对我来说,最好在key =&gt; value
中发送复选框<input type="checkbox" name="valg[<?=$hent_data[id]?>]" value="<?=$hent_data[process_id]?>" />
这会在php端给你一个类似于
的结果Array
(
[valg] => Array
(
[uniqueKey3] => processID3
[uniqueKey7] => processID7
[uniqueKey8] => processID8
)
)
因此在php中你可以这样做:
foreach($_POST['valg'] as $ID => $processID){
echo $hest = "INSERT INTO chosen (kat_ref, prod_ref, process_id) VALUES ($ID, '', $processID)"."<br/>";
}