2012-12-17 24 views
2

我想知道如果有可能,當我嘗試通過GET方法將其發送到我的其他頁面格式化複選框的名稱發送如何格式化的複選框的名稱。而由GET CakePHP的

其實我已經得到了產生類似的多選框:

<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> 

當我把我的形式,我的URL看起來像:

research%3D%26test%3D%26test%5B%5D%3D1%26test%5B%5D%3D2%26test%5B%5D%3D3 

那就是:

research=&test=&test[]=1&test[]=2&test[]=3 

而且我想什麼,將是:

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

或者

research=&test=1&test=2&test=3 

或者更好:

research=&test=1,2,3 

任何想法?

+0

你生成表單助手的投入?向我們展示您的CakePHP代碼。 – Alvaro

+0

是的,我使用的函數:$ this->形式 - >輸入端( '測試',陣列( '類型'=> '選擇', '多個'=> '複選框', '選項'=> $選項)) ; – NH3

回答

0

您可以定義使用表單助手輸入的名稱:

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

也就是說複選框是如何工作的,如果你想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')); 

這會讓你的處理更加困難。

你可以做research=&test=1,2,3與JS join()。爲什麼你想讓自己變得困難我不知道。你可以很容易地得到相同的格式在控制器doint GET與implode(',', $theData)

我會建議使用standards提交您的表單和稍後處理數據。

0

的問題是,我用的是多個複選框:

$this->Form->input('tests', array('type' => 'select', 'multiple' => 'checkbox', 'options' => $options)); 

所以我不能每個複選框單獨命名。

也許我不應該使用CakePHP這一點,但嘗試直接寫我自己的複選框中的HTML?