2012-04-06 21 views
4

選択したすべてのチェックボックスの値が表示されません。それはちょうど私はそれが原因であると考えるコードcakephpチェックボックス複数選択は最後に選択したチェックボックスの値を送信するだけです

foreach($apps as $app){ 


     echo $this->Form->input('Application.id', array('type'=>'checkbox','multiple' => 'checkbox' , 'id'=>$app['Application']['description'], 'div'=>false,'type'=>'checkbox','value' => $app['Application']['description'],'label'=>$app['Application']['description'])); 



    } 

と上は私がLASTCHECKBOX

object(CakeRequest) { 
    params => array(
     'plugin' => null, 
     'controller' => 'groups', 
     'action' => 'add', 
     'named' => array(), 
     'pass' => array() 
    ) 
    data => array(

     'Application' => array(
      'id' => 'LASTCHECKBOX' 
     ) 

    ) 
    query => array() 
    url => 'groups/add' 
    base => '' 
    webroot => '/' 
    here => '/groups/add' 
} 
+0

をなぜダブルポスト? http://stackoverflow.com/questions/10049917/cakephp-checkbox-is-showing-extra-hidden-field – mark

+0

@markそれらは実際には類似したトピックに関連する別個の質問です – icc97

答えて

1

で非常に最後のチェックボックスを得る提出された私の最後の選択チェックボックス

ここ

の値を与えます"値"。あなたのケースで

は、あなたが値、デフォルトまたはビューでそのようなものを設定しないより良いん"options" => array(1, 2, 3)

を使用しています。 コントローラのアクションを使用してデフォルトを設定します。 よりうまく動作するはずです。あなたが名前HMTL属性の最後の部分として[]を持っている必要があり、複数のチェックボックスについては

if ($this->request->isPost()) { 

} else { 
    $this->request->data['Model']['fieldname'] = 'defaultvalue'; 
} 
+0

私は混乱しています。配列(1,2,3,4)とは何ですか? – Autolycus

+0

「複数の」チェックボックスを使用している場合は、複数の値を選択する必要があります。そのため、複数の項目を持つオプション配列があります(単一の値ではありません)。 – mark

1

(詳細説明については、このanswerを参照してください)。

これはCakePHPで 'select'タイプの入力を使って行われます。だから私はあなたのあなたのためだと思う

<?php 
$options = array(
    'Value 1' => 'Label 1', 
    'Value 2' => 'Label 2' 
); 
echo $this->Form->select('Model.field', $options, array(
    'multiple' => 'checkbox' 
)); 
?> 

:あなたは2.0のForm Helper select documentationを見て(ただし、+だけでなくバージョン1.2に適用される)場合は、チェックボックスを使用して選択するあなただけの複数を作成する必要がループを必要としませんforeach($appsを必要としないでください。$optionsと似た形式で$ appsを変更する必要があります。

<?php 
$apps = array(
    'App Id 1' => 'Description 1', 
    'App Id 2' => 'Description 2' 
); 
echo $this->Form->select('Application.id', $apps, array(
    'multiple' => 'checkbox' 
)); 
?> 

をouputをする必要があります

<div class="input select"> 
    <label for="ApplicationId">Id</label> 
    <input name="data[Application][id]" value="" id="ApplicationId" type="hidden"> 
    <div class="checkbox"> 
     <input name="data[Application][id][]" value="App Id 1" id="ApplicationId1" type="checkbox"> 
     <label for="ApplicationId1">Description 1</label> 
    </div> 
    <div class="checkbox"> 
     <input name="data[Application][id][]" value="App Id 2" id="ApplicationId2" type="checkbox"> 
     <label for="ApplicationId2">Description 2</label> 
    </div> 
</div> 
関連する問題