设置值未选中复选框的PHP [英] Setting value of unchecked checkbox 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]
具有相同名称的隐藏和复选框输入需要保留选中和未选中的值,因此必须具有相同的索引,因此请指定如下内容:
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" />
这将为您提供一个包含11个项目的$_POST['acts']
数组,索引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'])
.
这篇关于设置值未选中复选框的PHP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!