Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 13-02-2012 15:13:10

manuzed78
Membre
Date d'inscription: 13-12-2009
Messages: 86
Site web

[Zend_Form][ZF 1.11.9] Probleme de logique MVC

Bonjour à tous

J'ai une liste d'items que j'affiche dans un tableau grace à une boucle de ce type (coté vue)

Code:

foreach( $this->items as $key => $item) :

Tout marche tres bien. ce que je voudrai c'est à chaque ligne de mon tableau, afficher une checkbox.
Qu'il y ait 1 ou 100 checkbox, c'est un unique formulaire : le but du jeu est de récupérer autant d'id que de lignes cochées.

En procédural, j'avais un truc comme ça :
en dehors de ma boucle, le FORM
dans ma boucle (à chaque ligne donc) :

Code:

"<input type=\"checkbox\" value=\"$id\" name=\"envoyer[]\""

Ce qui me permettait de récupérer mes id pour traitement.

Le probleme, en MVC, c'est que je ne vois pas comment ne pas faire cela dans ma vue, hors ce n'est pas comme cela que l'on est sensé faire non ?

j'ai bien créé mon formulaire mais si je le mets dans ma boucle :<td>  echo $this->formmasse; </td>
il me génère bien sur autant de formulaires différents que j'ai de lignes.

Y a t il une solution propre ( MVC parlant big_smile ) pour avoir un seul formulaire avec un bouton envoyer en bas de page ?

Edit : si je mets dans ma boucle un <td><?php echo $this->formmasse->check; ?></td>
cela me génère bien une checkbox par ligne et en dehors de la boucle j'affiche juste le bouton.
Mais comment générer un tableau de checkbox soit le fameux name="envoyer[]" ?

Dernière modification par manuzed78 (13-02-2012 16:03:24)

Hors ligne

 

#2 13-02-2012 16:47:28

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

Salut, j'ai pas tout compris à ce que tu voulais faire. Mais tu peux faire ça côté formulaire.

Tu passes en paramètre de ton contrôleur ta liste et dans celui-ci tu boucles pour créer un checkbox sur chaque.

Ensuite tu gères ton formulaire comme n'importe quel autre formulaire. Je sais pas si c'est vraiment propre pour du MVC mais c'est comme ça que je ferais.

Hors ligne

 

#3 13-02-2012 17:05:57

manuzed78
Membre
Date d'inscription: 13-12-2009
Messages: 86
Site web

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

Orkin a écrit:

Salut, j'ai pas tout compris à ce que tu voulais faire. Mais tu peux faire ça côté formulaire.

Tu passes en paramètre de ton contrôleur ta liste et dans celui-ci tu boucles pour créer un checkbox sur chaque.

Ensuite tu gères ton formulaire comme n'importe quel autre formulaire. Je sais pas si c'est vraiment propre pour du MVC mais c'est comme ça que je ferais.

Du progrès :
dans mon formulaire :
$check = new Zend_Form_Element_MultiCheckbox( 'check',array());
            $check->setRequired( false );

et dans ma vue :

<td><?php echo $this->formmasse->check->addMultiOption($scelle['id_scelle'], $scelle['id_scelle']); ?></td>

et c'est presque bon : seul hic : il concatène les checkbox : au dizieme item: j'ai une ligne qui comprend 10 checkbox ...

Comprends tu mieux ce que je veux faire?
en fait récupérer un ensemble de ID (les ID de mes items cochés) pour un traitement ultérieur.

Hors ligne

 

#4 13-02-2012 17:15:39

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

Non je vois pas :s

Hors ligne

 

#5 13-02-2012 17:26:05

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

Tu devrais faire comme Orkin dit, tu généré directement dans ton formulaire

Hors ligne

 

#6 13-02-2012 17:34:11

manuzed78
Membre
Date d'inscription: 13-12-2009
Messages: 86
Site web

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

Orkin a écrit:

Non je vois pas :s

J'ai trouvé big_smile

dans ma vue, j'ai fait un :

Code:

<td><?php $this->formmasse->check->clearMultiOptions();  // evite la concaténation des checkbox
        echo $this->formmasse->check->addMultiOption($scelle['id_scelle'], $scelle['id_scelle']); ?></td>

Concrètement, tu as ta liste d'items dans un tableau, sur chaque ligne, tu as une checkbox avec un value="ici l'ID de ton item"

merci

Hors ligne

 

#7 13-02-2012 18:41:00

shadypierre
Membre
Date d'inscription: 24-03-2010
Messages: 617

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

Perso j'ai rien capté à ce que tu as fait, ça me semble un peu bizarre ton truc dans la vue, tu le fait sur une boucle?

Hors ligne

 

#8 13-02-2012 19:03:14

manuzed78
Membre
Date d'inscription: 13-12-2009
Messages: 86
Site web

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

shadypierre a écrit:

Perso j'ai rien capté à ce que tu as fait, ça me semble un peu bizarre ton truc dans la vue, tu le fait sur une boucle?

Oui, dans une boucle.

Imagine par exemple que tu as une liste de personnes.
dans ton tableau tu génères un bouton pour les supprimer (par exemple)
si tu as 50 personnes à supprimer, tu es obligé de les supprimer une à une...

alors que ,dans le principe, ce que je veux faire, c'est de cocher X personnes,
envoyer les X ID et effectuer mon traitement (suppression dans mon exemple) sur les X personnes. Et ce en une seule action de formulaire et non X actions.

Hors ligne

 

#9 15-02-2012 09:28:03

manuzed78
Membre
Date d'inscription: 13-12-2009
Messages: 86
Site web

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

shadypierre a écrit:

Perso j'ai rien capté à ce que tu as fait, ça me semble un peu bizarre ton truc dans la vue, tu le fait sur une boucle?

Je rebondis pour te prendre un bien meilleur exemple :
dans phpmyadmin, tu as sur chaque ligne d'enregistrement la possibilité de cocher l'enregistrement pour
soit le modifier soit le supprimer .

en fait, il récupère l'ensemble des id des enregistrements cochés pour traitement.

Pour cela, la solution proposée plus haut me donne un résultat valable en html, malheureusement
j'ai crié victoire un peu trop tot car pour une raison inconnue, les id ne passent pas ...

alors que si je mets mon formulaire dans ma vue ( un peu à l'ancienne) de cette manière :

Code:

<form method ="post" action="">
<table>
    foreach ( ... ):   // ici ma boucle sur mes items

        <td><input type="checkbox" value="$mon_id" name="envoyer[]"  /></td>
        <td>...</td>

    endforeach;
</table>
</form>

La pour le coup, je vois bien avec firebug que je passe en post les différents id cochés...
en fait en utilisant Zend_Form et le multicheck box, si je n'utilise pas clearmultioptions, a chaque ligne les checkbox se concatènent ( au 10eme item, j'ai 10 checkbox !) et avec clearmultioptions, le html semble bon mais les id ne passent pas en post ...

Si quelqu'un a une idée pour reproduire ceci en mvc je suis toujours preneur.
Et si vous avez un avis à donner sur la methode qui marche ci dessus ( est ce propre?)...

Dernière modification par manuzed78 (15-02-2012 09:31:52)

Hors ligne

 

#10 15-02-2012 09:59:36

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

Je reste sur l'idée que tu peux faire la même chose directement dans ton form et non dans ta vue. Ca te laisse plus de souplesse pour ce genre de problème.

Hors ligne

 

#11 15-02-2012 10:17:33

manuzed78
Membre
Date d'inscription: 13-12-2009
Messages: 86
Site web

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

Orkin a écrit:

Je reste sur l'idée que tu peux faire la même chose directement dans ton form et non dans ta vue. Ca te laisse plus de souplesse pour ce genre de problème.

euh oui, mais comment exactement ?

Hors ligne

 

#12 15-02-2012 10:57:07

Orkin
Administrateur
Lieu: Paris
Date d'inscription: 09-12-2011
Messages: 1261

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

En faisant ta boucle directement dans le formulaire plutôt que dans ta vue.

Hors ligne

 

#13 15-02-2012 12:05:12

manuzed78
Membre
Date d'inscription: 13-12-2009
Messages: 86
Site web

Re: [Zend_Form][ZF 1.11.9] Probleme de logique MVC

Orkin a écrit:

En faisant ta boucle directement dans le formulaire plutôt que dans ta vue.

Ca tombe bien, j'étais juste dans cette logique...
mais c'est bien complexe pour moi  : quand tu as une vue un peu complexe ( des class différentes pour avoir des couleurs en fonction du résultat d'une requete) et la multiplication des decorators => les tr, les td et tous ce que je veux afficher dans ma ligne de tableau...

Ca me parait trop complexe pour l'instant.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages