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 :

Formulaire dans un tableau


Sujet :

Zend_Form PHP

  1. #1
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 15
    Par défaut Formulaire dans un tableau
    Bonjour,

    Je dois concevoir dans mon entreprise une page permettant une mise à jour de données en masse avec une partie des données qui sont dans un tableau (données fixes) et dans ce tableau je dois inclure un formulaire.

    Vous trouverez en pièce jointe un exemple.

    L'exemple 2 fonctionne sans problème j'ai un seul formulaire pour mettre à jour les données, par contre l'exemple 1 sur lequel je cale je n'ai pas trouvé de solution adéquate mise à part une qui est "crade", qui consisterai à générer le formulaire carrément dans le "vue" sans utiliser "Zend_Form".

    Sinon actuellement j'ai une solution plus propre utilisant "Zend_Form", mais qui fonctionne qu'à moitié voici le code source de ma vue =>

    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
    16
    17
     
    <?php
    foreach($this->product AS $cle => $valeur)
    {
    echo '<tr>
                  <td>'.$this->product[$cle]['product_name'].'</td>';
     
    echo '<td>'.$this->form->ss_hidden_pro_id_A.
                     $this->form->ss_hidden_val_bdd_A.
                     $this->form->ss_text_val_A.'</td>';
     
    echo '<td>'.$this->form->sa_hidden_pro_id_A.
                     $this->form->sa_hidden_val_bdd_A.
                     $this->form->sa_text_val_A.'</td>
           </tr>';
    }
    ?>
    Cela fonctionne, mais je n'ai pas les balises "FORM", car avec =>

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo $this->form;
    ?>
    On obtient un formulaire complet avec toutes les balises d'un formulaire.

    Mais en executant ce morceau de code =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
    foreach($this->form AS $cle => $valeur)
    {
    echo $cle.' => '.$valeur.'<br />';
    }
    ?>
    J'obtiens seulement les variables publiques et les balises "FORM" n'apparaissent à aucun moment. Alors l'une des solutions serait de rajouter à la main dans ma "vue" ces balises, mais cela fait "crade" et déjà ma solution de faire chercher manuellement mes éléments de mon formulaire ce n'est pas génial à mes yeux.

    Avez-vous d'autres idées à me conseiller ?

    Je vous remercie par avance pour vos réponses.


    Barbrady
    Images attachées Images attachées  

  2. #2
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Salut!

    La solution la plus propre mais un peu longue au depart serait de modifier les decorateurs (dl-dt-dd par defaut) et de les remplacer par par des balises de tableau (voir sur le net y a plein d'exemples).

    Tu peux aussi générer tes champs dans le formulaire comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // La génération du formulaire
    foreach($this->product AS $cle => $valeur) {
        $text = new Zend_Form_Element_Text("ss_text_val_{$cle}");
        $form->addElement($text);
    }
     
    // Dans la vue
    foreach($this->product AS $cle => $valeur) {
        echo $this->form->{"ss_text_val_{$cle}"};
    }
    Un truc dans le genre quoi....

  3. #3
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 15
    Par défaut
    Merci de ta réponse, mais en réalité c'est ce que j'ai fais coté génération du formulaire pour mes noms d'INPUT avec l'ID de mon produit.

    Par contre pour la vue je faisais un truc du genre =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $name_01 = 'ss_text_val_'.$this->product[$cle]['pro_id']';
     
    $this->form->$name_01;
    Car

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $this->form->'ss_text_val_'.$this->product[$cle]['pro_id'];
    Cela me créait mon champ correctement, mais en plus j'avais la valeur de l'ID du produit visuellement, d'où mon code précèdent.

    Mais grâce à ta méthode =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo $this->form->{"ss_text_val_{$this->product[$cle]['pro_id']}"};
    Cela m'évite de faire du stockage mémoire en déclarant des variables "temporaires".

    J'avais bien testé la solution d'ajouter les HTML Tag en trichant sur le dernier élément pour faire une fermeture de ligne "</tr>" en plus du "</td>", mais dans ma vue je me retrouve pour un produit autant de champs INPUT qu'il y a de produit ("<?php echo $this->form; ?>").

    Pour le moment j'ai ajouté manuellement les balises "FORM" dans ma vue, en attendant une éventuel solution meilleur.

  4. #4
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    C'est bizarre ça! J'ai par habitude de faire comme ça et je n'ai jamais eu de soucis....

    Peux-tu copier coller le code complet de ton action et le code de ta vue car j'ai du mal à saisir?

  5. #5
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 15
    Par défaut
    Le formulaire =>
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
     
    <?php
    	class Form_StockAlerteStockSecurite_Modifier extends Zend_Form
    	{
    		public function __construct($parametres, $options = null)
    		{
    			parent::__construct($options);
     
    			$this->setName('modifier_ss_sa');
     
    			// print_r($parametres);
     
    			$arr_cle = array_keys($parametres);
     
    			$int_i = 0;
     
    			while($int_i < count($parametres))
    			{
    				$obj_form_hidden_pro_id_ss = new Zend_Form_Element_Hidden($arr_cle[$int_i]);
    				$obj_form_hidden_pro_id_ss->clearDecorators();
    				$obj_form_hidden_pro_id_ss->setDecorators(array(
    												'ViewHelper',
    												array('HtmlTag', array('tag' => 'td', 'openOnly' => true))
    												));
     
    				$obj_form_hidden_stock_bdd_ss = new Zend_Form_Element_Hidden($arr_cle[$int_i + 1]);
    				$obj_form_hidden_stock_bdd_ss->clearDecorators();
    				$obj_form_hidden_stock_bdd_ss->setDecorators(array('ViewHelper'));
     
    				$obj_form_text_stock_ss = new Zend_Form_Element_Text($arr_cle[$int_i + 2]);
    				$obj_form_text_stock_ss->setAttrib('maxlength', 6)
    										->setAttrib('size', 4)
    										->setRequired(true)
    										->addValidator(new Zend_Validate_Int())
    										->clearDecorators()
    										->setDecorators(array(
    												'ViewHelper',
    												array('HtmlTag', array('tag' => 'td', 'closeOnly' => true))
    											));
     
    				$obj_form_hidden_pro_id_sa = new Zend_Form_Element_Hidden($arr_cle[$int_i + 3]);
    				$obj_form_hidden_pro_id_sa->clearDecorators();
    				$obj_form_hidden_pro_id_sa->setDecorators(array(
    												'ViewHelper',
    												array('HtmlTag', array('tag' => 'td', 'openOnly' => true))
    												));
     
    				$obj_form_hidden_stock_bdd_sa = new Zend_Form_Element_Hidden($arr_cle[$int_i + 4]);
    				$obj_form_hidden_stock_bdd_sa->clearDecorators();
    				$obj_form_hidden_stock_bdd_sa->setDecorators(array('ViewHelper'));
     
    				$obj_form_text_stock_sa = new Zend_Form_Element_Text($arr_cle[$int_i + 5]);
    				$obj_form_text_stock_sa->setAttrib('maxlength', 6)
    										->setAttrib('size', 4)
    										->setRequired(true)
    										->addValidator(new Zend_Validate_Int())
    										->clearDecorators()
    										->setDecorators(array(
    											'ViewHelper',
    											array(array('data' => 'HtmlTag'), array('tag' => 'td', 'closeOnly' => true)),
    											array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'closeOnly' => true))
    											));
     
    				$this->addElements(array($obj_form_hidden_pro_id_ss, $obj_form_hidden_stock_bdd_ss, $obj_form_text_stock_ss, 
    											$obj_form_hidden_pro_id_sa, $obj_form_hidden_stock_bdd_sa, $obj_form_text_stock_sa));
     
    				$int_i += 6;
    			}
     
    			$bt_valider = new Zend_Form_Element_Submit('submit');
    			$bt_valider->setLabel('Valider')
    						->clearDecorators()
    						->setDecorators(array(
    							'ViewHelper', 
    							array('HtmlTag', array('tag' => 'div', 'id' => 'bt_ajuster', 'openOnly' => true))
    						));
     
    			$bt_reset = new Zend_Form_Element_Reset('reset');
    			$bt_reset->setLabel('Restaurer les valeurs par défaut')
    						->clearDecorators()
    						->setDecorators(array('ViewHelper'));
     
    			$bt_annuler = new Zend_Form_Element_Submit('bt_annuler');
    			$bt_annuler->setLabel('Retour à la liste')
    						->clearDecorators()
    						->setDecorators(array(
    							'ViewHelper', 
    							array('HtmlTag', array('tag' => 'div', 'closeOnly' => true))
    						));
     
    			$this->addElements(array($bt_valider, $bt_reset, $bt_annuler));
    		}
    	}
    ?>
    Le controleur =>
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     
    <?php
    	class Sssa_IndexController extends Zend_Controller_Action
    	{
     
    		public function init()
    		{
     
    		}
     
    		public function indexAction()
    		{
    			$arr_resultat = array();
    			$arr_form_element = array();
     
    			$arr_resultat = Model_DbTable_StockAlerteStockSecurite::liste();
     
    			foreach($arr_resultat AS $cle => $valeur)
    			{
    				$arr_form_element['pro_id_ss_'.$arr_resultat[$cle]['pro_id']] = $arr_resultat[$cle]['pro_id'];
    				$arr_form_element['pro_bdd_ss_'.$arr_resultat[$cle]['pro_id']] = $arr_resultat[$cle]['pro_ss'];
    				$arr_form_element['pro_ss_'.$arr_resultat[$cle]['pro_id']] = $arr_resultat[$cle]['pro_ss'];
     
    				$arr_form_element['pro_id_sa_'.$arr_resultat[$cle]['pro_id']] = $arr_resultat[$cle]['pro_id'];
    				$arr_form_element['pro_bdd_sa_'.$arr_resultat[$cle]['pro_id']] = $arr_resultat[$cle]['pro_sa'];
    				$arr_form_element['pro_sa_'.$arr_resultat[$cle]['pro_id']] = $arr_resultat[$cle]['pro_sa'];
    			}
     
    			// FORMULAIRE
    			$obj_form = new Form_StockAlerteStockSecurite_Modifier($arr_form_element);
     
    			if($this->_request->isPost())
    			{
    				$formData = $this->_request->getPost();
     
    				if($obj_form->isValid($formData))
    				{
    					if(isset($formData['bt_annuler']))
    					{
    						$this->_redirect('..........');
    					}
    					else
    					{
    						$arr_cle = array_keys($arr_form_element);
     
    						$int_i = 0;
     
    						while($int_i < count($arr_form_element))
    						{
    							// Si la valeur en BDD actuellement est diffèrente de valeur de l'INPUT on va mettre à jour
    							if($formData[$arr_cle[$int_i + 1]] != $formData[$arr_cle[$int_i + 2]])
    							{
    								// ID produit ; Nouvelle valeur
    								Model_DbTable_StockAlerteStockSecurite::modifier_stock_securite($formData[$arr_cle[$int_i]], $formData[$arr_cle[$int_i + 2]]);
     
    								// MAJ de la valeur en BDD avec la valeur envoyée
    								$arr_form_element[$arr_cle[$int_i + 1]] = $formData[$arr_cle[$int_i + 2]];
    								// MAJ de la valeur INPUT avec la valeur envoyée
    								$arr_form_element[$arr_cle[$int_i + 2]] = $formData[$arr_cle[$int_i + 2]];
    							}
     
    							// Si la valeur en BDD actuellement est diffèrente de valeur de l'INPUT on va mettre à jour
    							if($formData[$arr_cle[$int_i + 4]] != $formData[$arr_cle[$int_i + 5]])
    							{
    								// ID produit ; Nouvelle valeur
    								Model_DbTable_StockAlerteStockSecurite::modifier_stock_alerte($formData[$arr_cle[$int_i]], $formData[$arr_cle[$int_i + 5]]);
     
    								// MAJ de la valeur en BDD avec la valeur envoyée
    								$arr_form_element[$arr_cle[$int_i + 4]] = $formData[$arr_cle[$int_i + 5]];
    								// MAJ de la valeur INPUT avec la valeur envoyée
    								$arr_form_element[$arr_cle[$int_i + 5]] = $formData[$arr_cle[$int_i + 5]];
    							}
     
    							$int_i += 6;
    						}
    					}
    				}
    			}
     
    			$obj_form->populate($arr_form_element);
     
    			$this->view->product = $arr_resultat;
    			$this->view->form = $obj_form;
    		}
    	}
    ?>
    La vue =>
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    <h1>
    	Gestion des stocks securité et d'alerte
    </h1>
     
    <form name="modifier_ss_sa" method="POST" action="">
    	<table border="1" cellspacing="0" cellpadding="1">
    		<tr>
    			<th>Produit</th>
    			<th>Stock de securité</th>
    			<th>Stock d'alerte</th>
    		</tr>
     
    		<?php
    			$bool_background_ligne = true;
     
    			foreach($this->product AS $cle => $valeur)
    			{
    		?>
    				<tr class="<?php echo (($bool_background_ligne == true) ? 'tr_ss_sa_global_couleur_01' : 'tr_ss_sa_global_couleur_02'); ?>">
    					<td><?php echo $this->stock_alerte[$cle]['pro_name']; ?></td>
    					<?php
    						echo $this->form->{"pro_id_ete_{$this->stock_alerte[$cle]['pro_id']}"}.
    								$this->form->{"sta_stock_alerte_avt_ete_{$this->stock_alerte[$cle]['pro_id']}"}.
    								$this->form->{"sta_stock_alerte_ete_{$this->stock_alerte[$cle]['pro_id']}"}.
    								$this->form->{"pro_id_hiver_{$this->stock_alerte[$cle]['pro_id']}"}.
    								$this->form->{"sta_stock_alerte_avt_hiver_{$this->stock_alerte[$cle]['pro_id']}"}.
    								$this->form->{"sta_stock_alerte_hiver_{$this->stock_alerte[$cle]['pro_id']}"};
    					?>
    		<?php
    				$bool_background_ligne =! $bool_background_ligne;
    			}
    		?>
    	</table>
     
    	<center>
    		<br />
     
    		<?php
    			echo $this->form->submit.' '.$this->form->reset.' '.$this->form->bt_annuler;
    		?>
    	</center>
    </form>

  6. #6
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Voici une astuce qui fonctionne chez moi avec les displaygroup:
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    // Controlleur
        public function indexAction()
        {
            // action body
            $form = new Zend_Form();
            $form->setDecorators(array(
                'FormElements',
                array('HtmlTag', array('tag' => 'table')),
                'Form',
            ));
     
            $text = new Zend_Form_Element_Text('text');
            $text->setDecorators(array(
                'ViewHelper',
                'Errors',
                'Label',
                array(array('data' => 'HtmlTag'), array('tag' => 'td'))
            ));
            $form->addElement($text);
     
            $text2 = new Zend_Form_Element_Text('text2');
            $text2->setDecorators(array(
                'ViewHelper',
                'Errors',
                'Label',
                array(array('data' => 'HtmlTag'), array('tag' => 'td'))
            ));
     
            $form->addElement($text2);
            $form->addDisplayGroup(array('text', 'text2'), 'textgroup1');
            $group = $form->getDisplayGroup('textgroup1');
            $group->setDecorators(array(
                        'FormElements',
                        'Fieldset',
                        array('HtmlTag',array('tag'=>'tr'))
            ));
            $this->view->form = $form;
        }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    // Vue
    <?php echo $this->form ?>
    Le seul truc c'est que je n'arrive pas à virer la balise fieldset, mais sinon l'idée est là, tu génère un displaygroup dynamique pour chacune de tes lignes de produit en l'englobant dans une balise <tr>

    J'espère que ça t'aidera!

  7. #7
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    J'ai trouvé, en fait fallait juste enlever 'FieldSet'!

    Voici un exemple plus concret :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
        public function indexAction()
        {
            // action body
        	$form = new Zend_Form();
        	$form->setDecorators(array(
    		    'FormElements',
    		    array('HtmlTag', array('tag' => 'table')),
    		    'Form',
    		));
        	for ($i=1; $i<5; $i++) {
    	    	$foo = new Zend_Form_Element_Text("foo_{$i}");
    			$foo->setDecorators(array(
    			    'ViewHelper',
    			    'Errors',
    			    'Label',
    			    array(array('data' => 'HtmlTag'), array('tag' => 'td'))
    			));
    			$form->addElement($foo);
     
    	    	$bar = new Zend_Form_Element_Text("bar_{$i}");
    			$bar->setDecorators(array(
    			    'ViewHelper',
    			    'Errors',
    			    'Label',
    			    array(array('data' => 'HtmlTag'), array('tag' => 'td'))
    			));
     
    			$form->addElement($bar);
    	    	$form->addDisplayGroup(array("foo_{$i}", "bar_{$i}"), "group_{$i}");
     
    			$group = $form->getDisplayGroup("group_{$i}");
    	        $group->setDecorators(array(
    	                    'FormElements',
    	                    array('HtmlTag',array('tag'=>'tr'))
    	        ));
        	}
        	$this->view->form = $form;
        }
    Par contre, je ne sais pas comment créer les entetes de tableau...

  8. #8
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 15
    Par défaut
    Je te remercie de ton aide, je regarderai ça dès lundi au boulot, mais je te fais confiance, Zend est super pratique pour les formulaire, mais là avec ces types de formulaire j'ai un peu de mal.

    Bon week-end.

  9. #9
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Si ça peut te rassurer, j'ai un certain rejet avec Zend_Form dès qu'il faut sortir des sentiers battus.

    Je l'aime bien pour générer des formulaires simples, mais dès qu'ils s'agit de formulaires complexes avec tableaux imbriqués ça devient une horreur!

  10. #10
    Membre averti
    Inscrit en
    Juillet 2009
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 15
    Par défaut
    Merci pour le coup de main sur les méthodes =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    $form->addDisplayGroup(array('text', 'text2'), 'textgroup1');
    $group = $form->getDisplayGroup('textgroup1');
    ?>
    Cela me facilite la vie pour afficher les INPUT dans ma vue.

    Sinon je suis contraint de mettre les balises "Form" à la main, j'ai essayé de tricher ce matin =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    $this->setDecorators(array('FormElements', array('HtmlTag', array('tag' => 'table')), 'Form'));
    ?>
    En gros rajouter les balises "table" après les balises "form" et dans ma vue de faire un =>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <?php
    echo $this->form;
    ?>
    Il fait un bazar monstre en me virant tous mes styles et en prenant >30 secondes d'exécution. Ce que je voulais faire c'est un tableau dans un tableau dont ce dernier contenait le formulaire, mais je n'ai plus que les yeux pour pleurer . J'ai pas cherché bien loin, car j'ai un peu de retard sur mes applis là.

    Je reprendrai du temps un peu plus tard.

    Sinon je te remercie cela m'a fait découvrir les groupes d'objets et l'affichage manuelle des objets formulaires manuellement de manière plus propre que la mienne.

  11. #11
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Mais de rien!
    ça m'a aussi permit de réviser Zend_Form et de m'y pencher un peu plus car habituellement je m'en plaint!

    D'ailleur grâce à ton post j'ai mis le jour sur un truc qui m'arrive et que je me demande si c'est un bug ou pas: http://www.developpez.net/forums/d95...setdecorators/

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

Discussions similaires

  1. fonction clone() et formulaires dans un tableau
    Par FrankOVD dans le forum jQuery
    Réponses: 1
    Dernier message: 16/07/2010, 00h32
  2. Aligner un formulaire dans un tableau
    Par __sPiKe__ dans le forum Balisage (X)HTML et validation W3C
    Réponses: 13
    Dernier message: 08/06/2009, 18h09
  3. formulaire dans un tableau
    Par AnneB dans le forum Struts 1
    Réponses: 11
    Dernier message: 22/05/2007, 15h57
  4. Envoyer des controles d'un formulaire dans un tableau
    Par CB56 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 18/11/2005, 10h43

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