salut je vx savoir comment faire pour réaliser un multi select pour supp/ajou avec des checkbox,j'ai essayé avec un plugin mais ca marche pas avec
merciii ^^ de me redériger vers un tuto s'i exist ou si vs avez une idée sur le sujet
Salut
ok je vois, donc là jte montre un truc que j'ai fais récemment (simplifié) qui est dans cet esprit. Donc tu as une page admin_index dans View/users pour gérer mes utilisateurs ici : J'ai une table users, un model User.php, un controller UsersController.php et ma vue admin_index.ctp.
Dans la vue admin_index.ctp tu dois faire un truc du style :
<?php echo $this->Form->create('User'); ?>
<table class="table table-striped table-bordered">
<thead>
<tr>
<th>#</th>
<th>Nom / prénom</th>
<th>Fonction</th>
<th>Département</th>
<th>Rôle</th>
<th>Statut</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<?php foreach($users as $k => $v) : $v = current($v); ?>
<tr>
<td><input name="data[User][id]]" value="<?php echo $v'id']; ?>" id="ModelName1" type="checkbox"></td>
<td><?php echo $v'firstname'].' '.$v'lastname'];?></td>
<td><?php echo $v'office']; ?></td>
<td><?php echo $departments$v'department_id']]; echo $v'is_manager']==1 ? ' <span class="label label-info">Responsable</span>' : '';?></td>
<td><?php echo $groups$v'group_id']]; ?></td>
<td><?php echo $v'online'] == 0 ? '<span class="label label-danger">Désactivé</span>':'<span class="label label-success">Activé</span>'; ?></td>
<td>
<?php echo $this->Html->link('<span class="glyphicon glyphicon-edit"></span> Éditer',array('action' => 'admin_edit', $v'id']), array('class' => 'btn btn-default','escape' => false)); ?>
<?php echo $this->Html->link('<span class="glyphicon glyphicon-trash"></span> Supprimer',array('action' => 'admin_delete', $v'id']), array('class' => 'btn btn-default', 'escape' => false), 'Voulez-vous vraiment supprimer cet utilisateur ?'); ?>
</td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
<div class="loader"><?php echo $this->Html->image('ajax-loader.gif', array('alt' => 'Chargement')); ?></div>
<?php echo $this->Form->button('<span class="glyphicon glyphicon-trash"></span> Supprimer', array('div'=>false, 'name'=>'multi-delete', 'class' => 'btn btn-default', 'escape' => false)); ?>
<?php echo $this->Form->end(); ?>
J'ai un champs id dans ma table user, jusque là facile dans le tableau à chaque ligne je met <input name="data[User][id]]" value="<?php echo $v'id']; ?>" id="ModelName1" type="checkbox">. Donc si tu coches les checkbox et que tu valides ton form avec :
<?php echo $this->Form->button('<span class="glyphicon glyphicon-trash"></span> Supprimer', array('div'=>false, 'name'=>'multi-delete', 'class' => 'btn btn-default', 'escape' => false)); ?>
<?php echo $this->Form->end(); ?>
Normalement ça devrait être bon. ça te permet de d'avoir une action dans ton request->data, tu peux donc envisager de faire plusieurs autres actions multiples comme activer/désactiver les utilisateurs. C'est ce que j'ai fais par exemple et ça marche très bien (même si je ne l'ai pas mis dans mon post).
UsersController.ctp :
function admin_index(){
$this->layout = 'admin'; // layout
$this->paginate = array('User' => array('limit' => 10)); //requete qui va chercher les users de ma bdd avec la pagination
$d'users'] = $this->Paginate('User'); //résultat de la requete qui contient mes users
if($this->request->is('post') || $this->request->is('put') ){
$data = $this->request->data;
if (isset($data'multi-delete']) && count($data'User']'id']) > 0) { //si l'utilisateur a appuyé sur le bouton supprimé en bas de la vue
foreach($data'User']'id'] as $k => $v) { // pour chaque checkbox cochée dans ma vue supprimer l'entré dans la bdd
$this->User->delete($v);
}
$this->Session->setFlash("Les utilisateurs ont bien été supprimés","notif"); //message OK
}
$this->redirect($this->referer()); //redirection
}
$this->set($d);
}
à toi d'adapter selon ton modèle et ta bdd, mais tu as l'idée.
Salut
En gros tu veux faire en sorte que quand la valeur d'un <select> change ça génère des checkbox automatiquement sans recharger la page ?