2017-05-22 2 views
1

J'ai essayé le formulaire de construction pour une liste de livres. Et je veux faire pour mettre à jour chaque position de quantité dans chaque rangée. J'ai pensé que je peux créer une forme dynamique avec un champ comme la quantité.Comment obtenir l'accès au formulaire de saisie dynamique créer un formulaire dans Zend

$zendFormUpdate = new Zend_Form; 
for ($i = 0; $i < 4; $i++){ 
    $quantity[$i] = $this->addElement('text','quantity'.$i,[ 
     'required' => false, 
    ]); 
} 
$this->view->forms = ['formupdate' => $zendFormUpdate]; 

Et maintenant je voudrais vous demander, comment puis-je obtenir ces champs? J'utilise le code ci-dessous, mais je ne peux rien

<html> 
    <body> 
     <p> 
     <form> 
      <?php for ($i = 0; $i < 4; $i++){ ?> 
      <?php echo $this->forms['formupdate']->quantity.$i; ?> 
      <?php } ?> 
     </form> 
     </p> 
    </body> 
</html> 

Répondre

1

Essayez:

// note the s after ->form, as well 
$this->forms['formupdate']->getElement('quantity' . $i); 

Mais comme il est une erreur typographique, ceci:

$this->forms['formupdate']->{ 'quantity' . $i }; 

devrait fonctionner aussi bien. J'ai oublié que vous pouvez accéder aux éléments Zend_Form de cette manière aussi.

+0

Oui $ this-> forms ['formupdate'] -> getElement ('quantité'. $ I) fonctionne parfaitement pour moi MERCI – Wraith

+0

@ user4347073 De rien! J'ai manqué le «$ i» au début. J'ai ajouté ceux-ci, alors maintenant vous pouvez voir comment utiliser le $ i dans la syntaxe alternative. –

+0

oui oui c'est ok maintenant. Merci beaucoup, j'ai sauvé mon temps j'ai essayé de comprendre hier :) – Wraith