我想从列表中获取所选复选框。 我收到错误/警告
参数1不是一个字符串(在for循环中)。
复选框中有一个ID
字段,因此当选中一个复选框时,我只想获取名为ID
的该行checkid
。
我似乎无法一次遍历列表,也检查已检查的字段。
我尝试了各种各样的组合,但我并不确切地知道正确的方法。
我在这里找不到 http://book.cakephp.org/2.0/en/core-libraries/helpers/form.html
控制器
if (isset($this->request->data['addrecord'])) {
foreach ($this->request->data as $key => $item):
if (isset($item['checkid'])){
if ($item['checkid']>0){
// $lessonId=($item['id']);
debug($item['checkid']); //no output
}
}
endforeach;
view//
echo '<td>'.$this->Form->checkbox('User.'.$key.'.checkid',
array('value'=>$student['Student']['id'], 'checked'=>0)).'</td>';
输出我无法获得单独的checkid
array(
'addrecord' => 'Add Email(s)',
'User' => array(
'firstname' => 'a',
'lastname' => '',
'searchemail' => '',
'id' => '372',
(int) 0 => array(
'checkid' => '216'
),
(int) 1 => array(
'checkid' => '311'
),
(int) 2 => array(
'checkid' => '0'
),
(int) 3 => array(
'checkid' => '0'
答案 0 :(得分:1)
您可以使用Hash提取值:
$data = array(
'addrecord' => 'Add Email(s)',
'User' => array(
'firstname' => 'a',
'lastname' => '',
'searchemail' => '',
'id' => '372',
(int) 0 => array(
'checkid' => '216'
),
(int) 1 => array(
'checkid' => '311'
),
(int) 2 => array(
'checkid' => '0'
),
(int) 3 => array(
'checkid' => '0'
)
)
);
$checked_ids = Hash::extract($data['User'], '{n}.checkid');
$checked_ids
数组将包含
array(
(int) 0 => '216',
(int) 1 => '311',
(int) 2 => '0',
(int) 3 => '0'
)