2013-05-27 114 views
1

我發現其他人在嘗試選擇多個複選框時遇到同樣的問題,只選擇了最後一個複選框。 Here is onehere is anotherCakePHP只選擇循環中的最後一個複選框

人們使用期權這樣

echo $this->Form->input('video',array('options'=> array('Value 1'=>'Label 1', 
                'Value 2'=>'Label 2', 
                'Value 3'=>'Label 3' 
                ), 
            'multiple' => 'checkbox' 
    )); 

我不認爲任何這些回答我的問題建議。我的複選框在循環中生成,但是每個人都建議使用「選項」來設置值。我不知道有多少個複選框會生成,所以我不明白這是如何工作的。

<table> 
<? 
    echo $this->Form->create(null,array(
        'onsubmit'=>'return confirm("Are you sure you want to archive?')); 
?>    
    <th>Order ID</th><th>Order Date</th><th>Order Total</th><th>Status</th><th>View</th><th>Select to Archive</th> 
    <?php foreach ($orders as $order): 
     ?> 
     <tr> 
      <td><?php echo $order['Order']['orderid'];?> </td> 
      <td><?php echo $formatted_date." ".$time; ?></td> 
      <td><?php echo $order['Order']['total'];?> </td> 
      <td><?php echo $order['Order']['order_status'];?> </td> 
      <td><a href="/orders/details/<?php echo $order['Order']['orderid']; ?>"/>View Order</a> </td> 
      <td><? echo $this->Form->checkbox('archive_value', array('hiddenField' => false, 'value' => $order['Order']['orderid'])); ?></td> 
     </tr> 
    <?php endforeach; ?> 
</table> 

<?php //options for the archiving values 

$archive_options = array(
       'selected' => 'Archive Selected Orders', 
       'filled' => 'Archive All Filled Orders', 
      ); 
?> 
<table class = "table_order_status"> 
<tr> 
    <td> 
     <? 
     echo $this->Form->input('archive_values', array('options' => $archive_options, 'value' => $select_value, 'name' => 'archive')); 
     ?> 
    </td> 
    <td> 
     <? 
     echo $this->Form->end(__('Submit')); 
     ?> 
    </td> 
</tr> 
</table> 

<? 

回答

2

嘗試附加一個週期到輸入元素的名稱的末端,即video.(來自this forum post導出)。這顯然會導致元素採用數組名稱樣式符號,例如video[],雖然它可能是Model.video[]。無論如何,這應該允許您在表單數據中接收所有選中的值。

+0

謝謝,它工作完美。奇怪的是,我沒有在食譜中看到它。 – user1443519

+1

不客氣。 – Kyle

相關問題