设置未选中复选框php的值
我有这个表格
<tr>
<td>
<input type="hidden" name="po[]" value="<?php echo $ord['id'] ?>" />
<input type="hidden" name="acts[]" value="1" />
<input id="acts" value='2' type="checkbox" <?php echo $check ?> name="acts[]" />
</td>
<td><img src="<?php echo $pnme['icon'] ?>" style="height: 25px; width: 25px; vertical-align: middle;" /><?php echo $pnme['name'] ?></td>
<td><input id="per" style="background: #BDBDBD; width: 100px;" name="per[]" size="5" type="text" class="small" value="<?php echo $ord['fee'] ?>" /></td>
<td><input id="dol" style="background: #BDBDBD; width: 100px;" name="dol[]" size="5" type="text" class="small" value="<?php echo $ord['cost'] ?>" /></td>
</tr>
如果未选中复选框,我试图让它传递不同的值,我有一个 hidden
输入,但它没有在我需要的地方正确传递值,当表单帖子这就是我处理信息的方式
I am trying to get it to pass a different value if the checkbox is not checked, I have a hidden
input but it does not pass the values correctly where I need it to, when the form posts this is how I handle the information
$po = implode(",", $_POST['po']);
$po = explode(",", $po);
$fee = implode(",", $_POST['per']);
$fee = explode(",", $fee);
$co = implode(",", $_POST['dol']);
$co = explode(",", $co);
$act = implode(",", $_POST['acts']);
$act = explode(",", $act);
print_r($act);
for ($i = 0; ; $i++) {
if ($i > count($po) - 1) {
break;
}
例如,如果我检查每个框,它会像这样设置数组
for example if I check every box it sets the array like this
Array ( [0] => 1 [1] => 2 [2] => 1 [3] => 2 [4] => 1 [5] => 2 [6] => 1 [7] => 2 [8] => 1 [9] => 2 [10] => 1 [11] => 2 [12] => 1 [13] => 2 [14] => 1 [15] => 2 [16] => 1 [17] => 2 [18] => 1 [19] => 2 [20] => 1 [21] => 2 )
即使任何一个都应该有 2 的值
even though ever single one should have the value of 2
我添加了这个试图将初始值设置为 1 认为如果选中该框它将覆盖该值,但情况似乎并非如此
I added this trying to set the initial value to 1 thinking that if the box is checked it would overwrite the value, but this doesn't seem to be the case
我不确定如何处理这种情况并使其与我的处理代码一起工作.
I am not sure how to handle this situation and make it work with my processing code.
推荐答案
[]
数组约定动态创建下一个索引,所以如果你有:
The []
array convention dynamically creates the next index, so if you have:
name="acts[]"
name="acts[]"
然后你得到:
acts[0]
acts[1]
需要保存checked和unchecked值的同名隐藏和checkbox输入需要有相同的索引,所以指定如下:
The hidden and checkbox inputs with the same name that need to hold the checked and unchecked value need to have the same index, so specify like:
<input type="hidden" name="acts[0]" value="1" />
<input type="checkbox" name="acts[0]" value="2" />
<!-- more checkboxes -->
<input type="hidden" name="acts[10]" value="1" />
<input type="checkbox" name="acts[10]" value="2" />
这将为您提供一个 $_POST['acts']
数组,其中包含 11 个项目,索引 0-10,值为 1
或 2代码>取决于它是否被检查.
This will give you a $_POST['acts']
array with 11 items, index 0-10 with the value either 1
or 2
depending on whether it was checked or not.
另外,我不知道你在用 implode()
和 explode()
做什么.如果您只是想重新索引数字键,请使用 array_values($_POST['acts'])
.
Also, I have no idea what you are doing with the implode()
and explode()
. If you are just trying to reindex the numeric keys then use array_values($_POST['acts'])
.
相关文章