IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend_Form PHP Discussion :

Zend Form et tableau d'éléments [ZF 1.9]


Sujet :

Zend_Form PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut Zend Form et tableau d'éléments
    Bonsoir,

    Voilà,

    mon problème est très simple à expliquer.
    Je veux obtenir ceci :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <input type="hidden" name="id[]" value="1" />
    <input type="hidden" name="id[]" value="2" />
    <input type="hidden" name="id[]" value="3" />

    Dans le controller, j'ai ce tableau de données, lui-aussi tout simple :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    $ids = array(1, 2 ,3);

    Mais impossible de générer des noms correctement avec Zend Form : il n'accepte pas que j'ajoute plusieurs contrôles hidden avec le même nom, et il n'accepte pas les crochets dans le nom.

    Je pense que je dois jouer avec les subForms, mais après plusieurs essais, je n'y comprend toujours rien.

    Une explication ou un lien me sauverait la vie.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    tu peux essayer comme ca par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    require_once 'Zend/Loader/Autoloader.php';
    Zend_Loader_Autoloader::getInstance();
     
    $form        = new Zend_Form();
    $ids         = array(1, 2 ,3);
     
    foreach($ids as $name => $value)
    {
        $form->addElement('hidden', strval($name), array('value' => $value, 'BelongsTo' => 'id'));
    }
     
    echo $form->render(new Zend_View());

  3. #3
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Excellent !

    Ma question était volontairement incomplète et je souhaite gérer ce tableau d'id au milieu de contrôles qui ne font pas partie du tableau. C'est pourquoi je pense employer les subforms.

    Mais pour si un jour mon besoin est aussi simple que ce que j'avais évoqué, j'utiliserais ce code qui convient à merveille.


  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par s.n.a.f.u Voir le message
    Excellent !

    Ma question était volontairement incomplète et je souhaite gérer ce tableau d'id au milieu de contrôles qui ne font pas partie du tableau. C'est pourquoi je pense employer les subforms.

    Mais pour si un jour mon besoin est aussi simple que ce que j'avais évoqué, j'utiliserais ce code qui convient à merveille.

    c'est aussi simple avec un subform

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    require_once 'Zend/Loader/Autoloader.php';
    Zend_Loader_Autoloader::getInstance();
     
    $form    = new Zend_Form();
    $subform = new Zend_Form_SubForm();
    $ids     = array(1, 2 ,3);
     
    foreach($ids as $name => $value)
    {
        $subform->addElement('hidden', strval($name), array('value' => $value));        
    }
     
    $form->addSubForm($subform, 'id');
     
    echo $form->render(new Zend_View());

  5. #5
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    J'ai essayé ce code sur une install ZF pure et il marche super.
    Mais il ne fonctionne toujours pas au boulot.

    Le fait que j'utilise un ZendX_JQuery_Form pourrait-il être à l'origine du problème ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 12/06/2013, 09h30
  2. [ZF 1.10] Zend form decorateur captcha tableau
    Par antrax2013 dans le forum Zend_Form
    Réponses: 1
    Dernier message: 11/07/2012, 21h47
  3. Mise en forme en tableau d'un Zend Form
    Par ZIED dans le forum Zend_Form
    Réponses: 1
    Dernier message: 20/06/2008, 23h29
  4. XSL pour visualiser arbre XML sous forme de tableau en HTML
    Par mattmat dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 28/03/2003, 10h55
  5. Tableau d'éléments de type variable
    Par Drooxy dans le forum Langage
    Réponses: 4
    Dernier message: 16/03/2003, 15h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo