下面是一些代码从一个笨查看返回字符串,而不是数组。相反,我得到的是'volunteers' => string('array')
。有什么想法发生在这里?form_checkbox()在笨
0
A
回答
4
以这种方式使用时,不能使用数组作为form_checkbox()的第二个参数,并且在稍后使用$vol['username']
时$vol
很可能是一个数组。你混淆了表单助手,它将第一个参数用作'name'属性,将第二个参数用作其'值'。
尝试:
<? foreach ($all_vols as $vol) :?>
<?=form_checkbox('volunteers[]', $vol['username']) ?>
<?=$vol['username']?>
<br />
<? endforeach ?>
1
在http://codeigniter.com/user_guide/helpers/form_helper.html该文档建议使用字符串作为第一个参数(在你的情况下,“志愿者”),而使用$vol
的内部属性 - 值对会产生名字的<input type="checkbox" />
输入标签。这是你想要的吗?如果是这样,你显然会得到一个“用户名”属性。
3
从CI的userguide
$data = array(
'name' => 'newsletter',
'id' => 'newsletter',
'value' => 'accept',
'checked' => TRUE,
'style' => 'margin:10px',
);
echo form_checkbox($data);
// Would produce:
<input type="checkbox" name="newsletter" id="newsletter" value="accept" checked="checked" style="margin:10px" />
你的阵列中应当包含数据需要它来填充复选框。因此,如果您确定它包含填充该字段所需的内容,那么您可能需要将复选框更改为<?=form_checkbox($vol) ?>
。
相关问题
确实!我的问题是,我将一个数组作为第二个参数传递给窗体帮助器。因此,form-helper给每个复选框赋值“array”。我根据你的建议修正了这个问题(并且在源文件中证实这些值是正确的)。但是,现在我只是获取$ _POST ['志愿者']中的最后一个复选框值。不应该有一个所有选定值的数组?为什么我只获得最后的价值? – starsinmypockets 2011-06-14 20:10:24
@sarsinmypockets对不起,我忘了,你需要添加括号给志愿者,以便它成为一个值的数组(print_r来查看结果)。更新我的回答以反映这一点。 – 2011-06-14 20:29:14