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 />

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);

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/>

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');
    }

. 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));

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);

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