Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
slt à tous! je reviens vers vous encore... j'ai mis en place un formulaire en HTML où je charge mon objet select en faisant ceci:
<font face='verdana' size='1'>Client : </font> <select name="client"> <?php for($i=0;$i<count($liste);$i++) {; ?> <option value="<?php echo $liste[$i]['name'];?>"><?php echo $liste[$i]['name'];?></option> <?php } ?></select><br />
maintenant j'ai décidé de passer au zend-form et voilà ce que je fais:
$cli = new Zend_Form_Element_Select('client'); $vendeurs = $prestations->lalistevendeur(); foreach($vendeurs as $vendeur) $cli->addMultiOption($vendeur->id, $vendeur->name); $cli->setLabel('Client') ->setRequired(TRUE);
pour le premier cas j'ai bien mes clients qui sont retournés mais pour le second rien. alors où est le hic svp?
ps: la fonction lalistevendeur() ramène les clients de ma BDD et elle fonctionne bien car le premier test est ok.
Hors ligne
Merci et désolé alors je précise mieux les choses. pour la première méthode qui consiste à mettre dans la vue le code est :
<form method="post" action="<?php echo $this->baseUrl ?>acheteur/enregistrer" > <center> <h3>Contrat Acheteur!</h3></center> <?php $num = $this->number;?> <?php $liste = $this->acheteurs;?> <?php $today = $this->ladate; ?> <?php $deb = $this->debut ;?> <pre> <font face='verdana' size='1'>Numéro :</font> <input type="text" name="numero" size="10" value="<?php echo $num ;?>" readonly="readonly"'/><br /> <font face='verdana' size='1'>Client : </font> <select name="client"> <?php for($i=0;$i<count($liste);$i++) {; ?> <option value="<?php echo $liste[$i]['name'];?>"><?php echo $liste[$i]['name'];?></option> <?php } ?></select><br /> <font face='verdana' size='1'>Date de création :</font> <input type="text" name="datecreation" size="10" value="<?php echo $today; ?>" readonly="readonly"/><br /> <font face='verdana' size='1'>Type :</font> <input type="text" name="typ" value="Abonnement" size="10" readonly="readonly"/><br /> <font face='verdana' size='1'>Section :</font> <select name="section"> <option selected>INT-PM</option> <option>SPE-PM</option></select><br /> <font face='verdana' size='1'>Mise en service :</font> <input type="text" name="mes" size="10" value="<?php echo $deb ;?>" /><br /> <font face='verdana' size='1'>Tarif de base :</font> <input type="radio" name="tarifbase" value="125000" checked>125000 inclu 1 utilisateur <input type="radio" name="tarifbase" value="300000">300000 inclu 2 utilisateurs <input type="radio" name="tarifbase" value="450000">450000 inclu 3 utilisateurs<br /> <font face='verdana' size='1'>Nombre total d'utilisateur(s):</font> <input type="text" name="nbretotaluser" size="1" value="1" onfocus='this.value=""'/><br /> <font face='verdana' size='1'>Sens :</font> <input type="text" name="sens" value="Acheteur" size="10" readonly="readonly"/><br /> <font face='verdana' size='1'>Type de Contrat :</font> <select name="typecontrat"> <option selected>Standard</option> <option >Prestataire</option></select><br /> <font face='verdana' size='1'>Remise :</font> <input type="text" name="remise" value="0" size="5"><br /> <font face='verdana' size='1'>Périodicité :</font> <input type="radio" name="periodicite" id="trois" value="3" onclick="document.getElementById('otre').style.display='none';"/>3 mois <input type="radio" name="periodicite" id="douze" value="12" checked onclick="document.getElementById('otre').style.display='none';"/>1 an <input type="radio" name="periodicite" id="autre" onclick="afficheautre('autre','otre')"/>Autre <font></font> <input type="text" name="autre" id="otre" size="30" style="display:none" value="Précisez la valeur ici (mois)" onfocus='this.value=""'/><br /> <font face='verdana' size='1'>Statut :</font> <input type="text" name="statut" value="Nouveau" size="10" /><br /> <font face='verdana' size='1'>Indicateur :</font> <input type="text" name="indicateur" value="En cours" size="10" readonly="readonly"/><br /> <font face='verdana' size='1'>Date de Fin:</font> <input type="text" name="datefin" value="<?php echo $lafin = $this->fin ?>" size="10" /><br /> <font face='verdana' size='1'></font> <textarea name="commentaire" rows="5" cols="40" onfocus='this.value=""'>commentaires</textarea> <font face='verdana' size='1'>Nombre de propositions:</font> <input type="text" name="proposition" value="1" size="1" onfocus='this.value=""'></input><br /> <input type="submit" value="Enregistrer" onclick="maj()"/> <input type="button" value="Confirmer" disabled/> <input type="button" value="Imprimer" disabled/>
en fait dans le contrôleur je fais j'envoie les variables par:
public function indexAction() { // action body $model = new Model_prestation(); $this->view->number= $model->creernumero('ABO','numprestation','Model_prestation'); $this->view->acheteurs= $model->lalisteacheteur(); $dat= new Zend_Date(); $this->view->ladate= $dat->get(Zend_Date::DATE_MEDIUM,'de'); $this->view->debut = $model->ladatedujour()->get(Zend_Date::DATE_MEDIUM,'de'); $this->view->fin = $model->ladatefin()->get(Zend_Date::DATE_MEDIUM,'de'); }
. Ce que je veux cette fois c'est faire mon formulaire avec zend_form et là je fais ceci:
class Form_acheteur extends Zend_Form { public function __construct($option=NULL) { parent::__construct($option); $this->setName('Formulaire_acheteur'); $prestations = new Model_prestation(); $num = new Zend_Form_Element_Text('numero'); $num->setLabel('Numero') ->setAttrib('readonly','readonly'); $cli = new Zend_Form_Element_Select('client'); $vendeurs = $prestations->lalistevendeur(); foreach($vendeurs as $vendeur) $cli->addMultiOption($vendeur->id, $vendeur->name); $cli->setLabel('Client') ->setRequired(TRUE); $date = new Zend_Form_Element_Text('datecreation'); $date->setLabel('Date de creation') ->setAttrib('readonly','readonly'); $typ = new Zend_Form_Element_Text('typ'); $typ->setLabel('Type') ->setAttrib('readonly','readonly'); $sec = new Zend_Form_Element_Select('section'); $sec->setLabel('Section') ->setMultiOptions(array('int'=>'INT-PM','spe'=>'SPE-PM')); $mes = new Zend_Form_Element_Text('mes'); $mes->setLabel('Mise en service') ->setRequired(true); $tarif = new Zend_Form_Element_Radio('tarifbase'); $tarif->setLabel('Tarif de base') ->addMultiOption(125000,'125000 (inclu 1 utilisateur)') ->addMultiOption(300000,'300000 (inclu 2 utilisateurs)') ->addMultiOption(450000,'450000 (inclu 3 utilisateurs)') ->setValue('125000'); $nbretotuser = new Zend_Form_Element_Text('nbretotaluser'); $nbretotuser->setLabel('Nombre total d\'utilisateur(s)') ->setRequired(true); $sens = new Zend_Form_Element_Text('sens'); $sens->setLabel('Sens') ->setAttrib('readonly','readonly'); $typcon = new Zend_Form_Element_Select('typecontrat'); $typcon->setLabel('Type de contrat') ->setMultiOptions(array('standard'=>'Standard','prestataire'=>'Prestataire')); $rem = new Zend_Form_Element_Text('remise'); $rem->setLabel('Remise') ->addValidator('NotEmpty') ->setValue(0); $period = new Zend_Form_Element_Radio('periodicite'); $period->setlabel('Periodicite') ->addMultiOptions(array('3'=>'3 mois','12'=>'1 an','autre'=>'Autre')) ->setValue(12); $autr = new Zend_Form_Element_Text('autre'); $autr->setLabel('Pour autre veuillez renseigner ici!'); $statut = new Zend_Form_Element_Text('statut'); $statut->setlabel('Statut') ->setAttrib('readonly','readonly'); $ind = new Zend_Form_Element_Text('indicateur'); $ind->setLabel('Indicateur') ->setAttrib('readonly','readonly'); $datefin = new Zend_Form_Element_Text('datefin'); $datefin->setLabel('Date de fin'); $com = new Zend_Form_Element_Textarea('commentaire'); $com->setLabel('Commentaires'); $prop = new Zend_Form_Element_Text('proposition'); $prop->setLabel('Nombre de proposition(s)'); $submit = new Zend_Form_Element_Button('submit'); $submit->setLabel('Enregistrer'); //$nbreligne= new Zend_Form_Element_Text('nbreligne'); $this->addElements(array($num,$cli,$date,$typ,$sec,$mes,$tarif,$nbretotuser,$sens ,$typcon,$rem,$period,$autr,$statut,$ind,$datefin,$com,$prop,$submit));
le problème c'est que le formulaire est bien rendu mais sans les éléments liés au champ "client".[citation]Affiche tu ton $cli directement ou est il inséré dans une object Zend_Form que tu affiches ?[/citation]il doit justement être inséré dans le zend_form select d'où les lignes
$cli = new Zend_Form_Element_Select('client'); $vendeurs = $prestations->lalistevendeur(); foreach($vendeurs as $vendeur) $cli->addMultiOption($vendeur->id, $vendeur->name); $cli->setLabel('Client') ->setRequired(TRUE);
cette fois trop de code vraiment désolé...
Hors ligne