2

チェックボックスを 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>

フォームを送信すると、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

何か案は ?

4

3 に答える 3

0

FormHelper を使用して入力の名前を定義できます。

echo $this->Form->checkbox('yourInputId', array('name' => 'yourInputName'));
于 2012-12-17T15:37:49.253 に答える
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,3JS でできますjoin()。なぜ自分でこれを難しくしたいのか、私にはわかりません。コントローラーで同じフォーマットを簡単に取得できます。implode(',', $theData)

standardsフォームを送信し、後でデータを処理するために使用することをお勧めします。

于 2012-12-17T15:40:20.397 に答える
0

問題は、複数のチェックボックスを使用していることです:

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

そのため、各チェックボックスの名前を個別に変更することはできません。

これには Cakephp を使用しない方がよいかもしれませんが、独自のチェックボックスを html に直接記述してみてはいかがでしょうか。

于 2012-12-17T16:41:29.077 に答える