我有一个表单来获取用户对表单最感兴趣的书籍,其中包含每个类别的选项卡,每个选项卡包含多个复选框,以便用户可以查看他喜欢的书籍的名称。这里的问题我无法获取包含图书名称的复选框的值。
查看
<? echo $this->Form->create('Book', array('id'=>'booksform',
'url'=>array('action' => 'your_books'))); ?>
<div id="tabs-1">
<? echo $this->Form-> input('books',array('type' => 'select',
'multiple' => 'checkbox',
'name' => 'books',
'options' => $biographies,
'label'=>false));?>
</div>
<div id="tabs-2">
<? echo $this->Form-> input('books',array('type' => 'select',
'multiple' => 'checkbox',
'name' => 'books',
'options' => $history,
'label'=>false));?>
</div>
<? echo $this->Form->end(); ?>
<? echo $this->Form->submit(__('Submit'),array('class'=>'btn btn-primary','div'=>false)); ?>
控制器 我试过这个
if ($this->request->is('post')) {
$books = $this->request->data( 'books');
}
和此:
$books = $this->request->data['Book']['books'];
答案 0 :(得分:0)
您的表单应如下所示:
<? echo $this->Form->create('Book', array('id'=>'booksform',
'url'=>array('action' => 'your_books'))); ?>
<div id="tabs-1">
<?
$biographies = array('1'=>'a','2'=>'b');
echo $this->Form-> input('books',array('type' => 'select',
'multiple' => 'checkbox',
'name' => 'books',
'options' => $biographies,
'label'=>false));?>
</div>
<div id="tabs-2">
<? $history = array('3'=>'c','4'=>'d');
echo $this->Form-> input('books',array('type' => 'select',
'multiple' => 'checkbox',
'name' => 'books',
'options' => $history,
'label'=>false));?>
</div>
<?
echo $this->Form->submit(__('Submit'),array('class'=>'btn btn-primary','div'=>false));
echo $this->Form->end(); ?>
这里传递了多个&#39;字段名中的参数,因此其值存储为数组格式。
提交后的Sp,通过下面的代码返回所有逗号分隔的复选框ID
<?php echo implode($this->request->data['books'],','); ?>
答案 1 :(得分:0)
是否有必要拥有这两个div和?
因为我认为你的HTML应该足够灵活,以容纳单个div下的所有chekbox。如果您尝试这样做,我向您保证您的问题将得到解决。