J'ai une page avec une liste de livres, et chaque ligne a une case à cocher. (J'utilise cakephp 1.2).
Je souhaite laisser l'utilisateur enregistrer plusieurs livres.
Pour l'instant j'ai cette case à mon avis (dans un cycle, où je reçois la liste de tous les livres):cases à cocher multiples avec cakephp 1.2
<?php echo $form->input('salva', array('value' => $cdBiblio['CdBiblio']['codiceBiblio'], 'label' => '', 'type' => 'checkbox')); ?>
Cette forme: <?php echo $form->create('cd_biblios', array('action' => 'save')); ?>
Et ce bouton:
<?php echo $form->end('Add All');?>
Dans le contrôleur, j'ai quelque chose comme ça pour le débogage:
debug($this->data);
foreach($this->data['cd_biblios']['salva'] as $item) {
debug($item);
}
Mais ça ne marche pas.
J'ai remarqué qu'il ne prend que le dernier livre de la liste avec debug ($ this-> data); et si je vérifie plus de 1 livre, il affiche 0 ou le dernier identifiant du livre, par exemple:
Array (
[cd_biblios] => Array
(
[salva] => 0
))
RESOLU:
De l'avis J'utilise le code de Danial.
Dans le contrôleur j'utilise ce code:
if(!empty($this->data)) {
$item=$this->data;
debug($item);
$dim=count($item['Model']['field']);
$i=0;
for ($i=0;$i<$dim;$i++)
if ($item['Model']['field'][$i]!=0)
{
$data = $this->Session->read('libri');
$data[] = $item['Model']['field'][$i];
$this->Session->write('libri', $data);
}
$this->Session->setFlash(__('I libri sono stati salvati', true));
$this->redirect($this->referer());
}
Je reçois près avec votre code: dans le contrôleur je $ this-> données qui est le tableau de tous les livres (0 si non coché, id si coché), comment puis-je le faire fonctionner? – Ettore