如何在通过GET-cakephp发送时格式化复选框的名称

如何在通过GET-cakephp发送时格式化复选框的名称,cakephp,checkbox,get,Cakephp,Checkbox,Get,我想知道,当我试图通过GET方法将复选框发送到我的其他页面时,是否可以格式化复选框的名称 实际上,我有多个复选框,它们生成如下内容: <div class="checkbox"><input type="checkbox" name="test[]" value="1" id="ResearchTest1" /><label for="ResearchTest1">First Test</label></div> <div cla

我想知道,当我试图通过GET方法将复选框发送到我的其他页面时,是否可以格式化复选框的名称

实际上,我有多个复选框,它们生成如下内容:

<div class="checkbox"><input type="checkbox" name="test[]" value="1" id="ResearchTest1" /><label for="ResearchTest1">First Test</label></div>
<div class="checkbox"><input type="checkbox" name="test[]" value="2" id="ResearchTest2" /><label for="ResearchTest2">Second Test</label></div>
<div class="checkbox"><input type="checkbox" name="test[]" value="3" id="ResearchTest3" /><label for="ResearchTest3">Third Test</label></div>
即:

research=&test=&test[]=1&test[]=2&test[]=3
我想要的是:

research=&test1=1&test2=2&test3=3

或者更好:

 research=&test=1,2,3

有什么想法吗?

您可以使用FormHelper定义输入的名称:

echo $this->Form->checkbox('yourInputId', array('name' => 'yourInputName'));

这就是复选框的工作原理,如果您想要
test1=1&test2=2&test3=3
,那么您应该分别命名每个复选框

echo $this->Form->checkbox('foo', array('name' => 'test1'));
echo $this->Form->checkbox('foo', array('name' => 'test2'));
echo $this->Form->checkbox('foo', array('name' => 'test3'));
这将使您的处理更加困难

您可以使用JS
join()
进行
research=&test=1,2,3
。我不知道你为什么要让这件事对你自己造成困难。使用
内爆(“,”,$theData)获取时,您可以在控制器中轻松获取相同的格式。


我建议您使用
标准
提交表单并在以后处理数据。

问题在于我使用了多个复选框:

$this->Form->input('tests', array('type' => 'select', 'multiple' => 'checkbox', 'options' => $options));
所以我不能单独重命名每个复选框

echo $this->Form->checkbox('foo', array('name' => 'test1'));
echo $this->Form->checkbox('foo', array('name' => 'test2'));
echo $this->Form->checkbox('foo', array('name' => 'test3'));

也许我不应该为此使用cakephp,但尝试直接用html编写我自己的复选框?

是否使用FormHelper生成这些输入?向我们展示您的CakePHP代码。是的,我正在使用:$this->Form->input('tests',array('type'=>'select','multiple'=>'checkbox','options'=>$options));
$this->Form->input('tests', array('type' => 'select', 'multiple' => 'checkbox', 'options' => $options));