2012-12-15 43 views
0

我有一個預訂列表,我想用多個複選框刪除它們。這裏是我的代碼:蛋糕中的多個複選框php

foreach ($bookings as $booking): ?> 
    <tr> 
     <td><?php echo h($booking['Booking']['first_name']); ?>&nbsp;</td> 
     <td><?php echo h($booking['Booking']['surname']); ?>&nbsp;</td> 
     <td><?php echo h($booking['Booking']['created']); ?>&nbsp;</td> 
     <td><?php echo $this->Form-> checkbox('Bookings.ID.['.$booking['Booking']['ID'].']', 
     array('value' => $booking['Booking']['ID']));?></td>  
    </tr> 
<?php endforeach; ?> 

,並在我的控制器我用這個功能來刪除所選的預訂:

public function deletebooking(){ 

    $bookings = $this->Booking->find('all'); 
    $this->set('bookings',$bookings); 
    if(!empty($this->data)){ 
     foreach($this->data[Bookings] as $key => $value){ 

      if($value != 0){ 
       $this->Booking->delete($value); 
       $this->redirect(array('action' => 'index')); 
      } 

     } 
    } 

} 

誰能告訴我,爲什麼它不工作?

+0

請提供更多信息。有錯誤嗎?它進入你的代碼有多遠?它是否完全符合你的功能?它在做foreach()嗎?如果是這樣,價值是多少? ...等等等等 – Dave

回答

1

您輸入字段更改爲以下: 的foreach($訂單爲$預訂):>

<td> 
    <?php echo $this->Form->checkbox('bookingids', 
             array(
             'value' => $booking['Booking']['ID'], 
             'name' => 'data[Booking][bookingids][]', 
             ));?> 
</td> 

請注意,在名稱值空[]。這將創建該數組的新索引。在您的控制器中,您可以像這樣訪問它:

if(!empty($this->data)) : 
     foreach($this->data['Bookings']['bookingids'] as $key => $value): 
       $data = array(); 
       $data['Booking']['id'] = $value; 
       $this->Booking->delete($data); 
     endforeach; 
     $this->redirect(array('action' => 'index')); 
    endif;