Bonjour :)

Voila, j'ai effectué un champ pour une recherche basique dans mon tableau de données.

La recherche s'effectue sans soucis mais le bouton reset ne fonctionne pas :(

D'abord le bout de code:

<?php $this->set('title_for_layout', 'Gestion des produits'); ?>
<h1>Gestion des produits</h1>
<?php echo $this->Form->create('Product', array('url' => array('action' => 'index'), 'class' => 'search')) ?>
<?php echo $this->Form->input('q',array('label'=>false,'placeholder'=>'Nom ou ID')) ?>
<div class="submit">
        <input type="submit" value="Trouver" />
        <input type="reset" value="Tout Afficher" />
 </div>
<div class="reset">
        <input type="reset" value="Tout Afficher" />
    </div>
<?php echo $this->Form->end()?>

le controller qui va avec :

$cond = array();
                if($this->request->is('post')){
                    $q = $this->request->data'Product']'q'];
                    $q = trim($q);
                    if(is_numeric($q))
                        $cond'Product.id'] = intval($q);
                    else{
                        $cond] = '(
                            Product.name LIKE "%'.$q.'%" OR
                            Artist.firstname LIKE "%'.$q.'%" OR
                            Artist.lastname LIKE "%'.$q.'%"
                         )';
                    }                        
                }                
        $this->Product->recursive = 0;
        $this->set('products', $this->paginate($cond));

Que dois je modifier pour que le reset de mon champ recherche se reinitialise et m'affiche tout ? :)

Un grand merci pour votre aide !

5 réponses


hachbe
Réponse acceptée

Comme dit Rtransat, le bouton type reset, reset juste le contenu des champs du formulaire lié mais réalise aucune action en soi.
Si tu as le cas d'un champ pour filtrer un tableau par exemple, ce que tu peux faire simplement c'est juste un lien qui permet de rafraichir ta page tout bêtement et tu auras à nouveau tout tes éléments dans ton tableau et ton champs recherche vide.
C'est ce que Magento fait, je pense, dans leur admin au niveau de leur tableau de produit par exemple.

hachbe
Réponse acceptée

Bonsoir MLG01 ,

Ok, je pense que faisant un bouton (ça peut être un lien - balise <a> - avec le même style que les boutons d'actions) qui refait un rafraichissement de la page, est une bonne solution :)

Bon amusement et j'espère que ça te conviendra ;)

hachbé

Quand tu clic sur le bouton reset il n'y a pas d'action au sens propre au niveau du formulaire, c'est juste pour réinitialiser les champs et non le soumettre. C'est un type reset et non submit. Ce que tu peux donc faire c'est lorsque tu clic sur ce bouton faire une redirection vers la même page ou alors faire un traitement en ajax.

MLG01
Auteur

tout d'abord;: merci pour la réponse :-)
ok, donc, je dois faire un beforefilter() sur ce bouton je suppose ? :o

MLG01
Auteur

après une semaine de programmation sur mon site et de découverte , je reviens pour répondre à hachtable.

Effectivement, ca ne fait qu'un reset du champ comme tu me l'a écrit et comme en Jquery, je ne suis pas encore très bon, je vais faire un lien ayant l'apparence de mes boutons comme tu me le suggères :)