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 ?
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
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 ?
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.
Merciiiiiiii
Elsenthil c super tu m'a vraiment sauvé ca marche trés bien