Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 29-11-2010 09:13:03

sevy
Membre
Date d'inscription: 17-09-2010
Messages: 37

et avec zend

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:

Code:

<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 />
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

maintenant j'ai décidé de passer au zend-form et voilà ce que je fais:

Code:

$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);
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

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

 

#2 29-11-2010 09:36:59

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: et avec zend

Tu mets trop peu de code pour qu'on comprenne bien.
Affiche tu ton $cli directement ou est il inséré dans une object Zend_Form que tu affiches ?

Hors ligne

 

#3 29-11-2010 11:04:54

sevy
Membre
Date d'inscription: 17-09-2010
Messages: 37

Re: et avec zend

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 :

Code:

<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&eacute;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&eacute;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&eacute;riodicit&eacute; :</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&eacute;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/>
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

en fait dans le contrôleur je fais j'envoie les variables par:

Code:

 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');
    }
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

. Ce que je veux cette fois c'est faire mon formulaire avec zend_form et là je fais ceci:

Code:

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));
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

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

Code:

$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);
Ajoutez [lang=php|phtml|javascript|sql|perl|xml|shell|html] au début de votre code pour activer le syntax highlighting

cette fois trop de code vraiment désolé...

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