使用Cakephp 2我试图从列表中选择一个或多个单击复选框的记录 名为my_id []:
<input type="checkbox" name="my_id[]" value="<?php echo $Myobj['My']['id']; ?>
我有一个指向控制器processBatch方法的链接,但不知道如何使用复选框将所选数据的数组传递到视图文件中。
<?= $this->Html->link('Batch process','proccessBatch')?>
我在尝试:
public function proccessBatch( ) //array of $ids
{
pr($this->request);
但没有看到$ this-request-&gt;数据。如何获取复选框选中的值?
答案 0 :(得分:1)
我在下面为您创建了一个示例。
这是我的观点
<?php
//sample list of items with 'id'=>'name
$arrayList = [
0=>'item 1',
1=>'Item 2',
2=>'Item 3'
];
//create the form
echo $this->Form->create('listofitems',array('novalidate' => true));
//generate the checkboxes by looping through the items(this is just one way of doing it)
for($i=0;$i<count($arrayList);$i++){
//concatenate the value of the id ($i in my case) with the name
// of the field to uniquely identify it.
echo $this->Form->checkbox("my_id".$i);
}
echo $this->Form->end('save');//end form and save button
?>
这是我的控制器及其动作
<?php
App::uses('AppController', 'Controller');
class SampleController extends AppController {
public function arrays(){
pr($this->request->data); //just pr the posted data
}
}
?>
控制器中pr行的结果
Array
(
[listofitems] => Array
(
[my_id0] => 1
[my_id1] => 0
[my_id2] => 1
)
)
希望这可以帮助您解决问题。请注意,只有已检查的商品的值为1 ,而未选中的商品的值为0