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

Langage PHP Discussion :

remplir une liste déroulante


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Points : 66
    Points
    66
    Par défaut remplir une liste déroulante
    tout le monde,
    Je suis débutant en zend et je cherche a faire une "combobox" ou autrement dit une liste déroulante en récupérant les données d'une table.

    j'ai cherché à plusieurs endroits mais je ne comprends pas bien comment cela fonctionne,

    quelqu'un aurait il un exemple commenté/détaillé que je puisse comprendre ou une simple explication ??

    ce que je cherche a faire, c'est dans le formulaire d'ajout de client, afficher une liste de tous les commerciaux.

    merci beaucoup !!!!
    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !

  2. #2
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    Hello,

    Réponse courte je te préviens, vu l'état avancé de délabrement dans lequel je me trouve

    Pour afficher une liste select HTML, Zend Framework fournit un helper, formSelect, tu trouveras la documentation ici :
    http://framework.zend.com/manual/en/...w.helpers.html

    Cet helper prends en 4ème argument un tableau qui correspond aux valeurs dans ta liste. Si par exemple tu as un commercial d'id 1 et de nom Durand, et un autre d'id 2 et de nom Dupond, il faut lui passer le tableau suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(1 => 'Durand', 2 => 'Dupond');
    Pour récupérer tes commerciaux, je te conseille d'exécuter (dans ton modèle...) une requête avec Zend_Db_Adapter et d'utiliser la méthode fetchPairs() qui est la méthode rêvée pour ce genre de chose.

    La doc : http://framework.zend.com/manual/en/...b.adapter.html

    Un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $select = $db->select()->from('commerciaux', array('id', 'nom'));
    $listOptions = $db->fetchPairs($select);
    Il ne te reste plus qu'à passer $listOptions comme paramètre de l'helper formSelect.

    En espérant que ça te mette sur la voie...

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Points : 66
    Points
    66
    Par défaut
    Bonjour et merci de ta réponse Nighty !

    Je suis malheureusement désolé de te dire que je n'y comprends pas grand chose (et oui, je suis vraiment débutant !! )
    Personnellement j'utilisais cette méthode :

    dans mon formulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $commercial= new Zend_Form_Element_Select('commercial');
    $commercial->setLabel('Commercial');
    $commercial->addMultiOptions(array('commercial1'=>'commercial1','commercial2'=>'commercial2'));
    et dans mon controller :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $formData = $this->_request->getParams();
    C'est une méthode que j'ai trouvé en cherchant sur le net ... mais celle ci ne fonctionne pas, en effet, je n'arrive même pas à afficher la liste déroulante, même vide !!

    de plus, je cherche à remplir la combobox avec les éléments présents dans une table de ma base...

    Aurai-je oublié un détail ? N'est elle pas correcte ??

    Je m'excuse si ce que tu as dit est clair, j'aurais aimé pouvoir te dire que le problème était résolu mais mon niveau assez faible ne me le permet pas.
    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !

  4. #4
    En attente de confirmation mail

    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2003
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2003
    Messages : 253
    Points : 637
    Points
    637
    Par défaut
    De ce que tu me dis, je vois que tu utilises Zend_Form. C'est une très bonne chose, mais c'est aussi beaucoup plus complexe à appréhender : je te conseille de lire massivement la documentation du Zend Framework, et d'intégrer petit à petit de nouveaux modules dans tes développements.

    Ne le prends pas pour un refus de te répondre, mais il y a vraiment trop d'éléments à expliquer pour que l'on puisse résoudre ton problème.

    Avant de me sentir à l'aise avec la globalité du Zend Framework, il m'a fallu de nombreuses heures de veille et l'appliquer dans 3 projets différents : la courbe d'apprentissage est assez raide, il ne faut pas sauter les étapes et commencer par la doc et les tutos sur le net.

    J'espère tout de même que ça aura pu t'aider un peu, et bon courage

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

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Points : 663
    Points
    663
    Par défaut
    Salut,

    Essaie de base:
    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
     
    // Controller
     
    $form = new Zend_Form();
    $form->setAction('ton_url_vers_ton_action')->setMethod('post');
    $select = new Zend_Form_Element_Select('commercial');
    $select->setLabel('Commercial');
    $select->setMultiOptions(array('commercial1'=>'commercial1','commercial2'=>'commercial2'));
    $form->addElement($select);
     
    if($this->_request->isPost() && $form->isValid($_POST)) {
        Zend_Debug::dump($form->getValues());
    }
    $this->view->form = $form;
     
    // Dans ta vue
    <?php echo $this->form; ?>
    Les idiots sont ceux qui ne posent jamais de question!

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    380
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 380
    Points : 66
    Points
    66
    Par défaut
    @ Nighty : Je te remercie encore de ton aide, celle-ci m'aura permis de m'éclairer un peu sur d'autres points du zend. Effectivement, le Zend est un beau joujou qu'il faut apprendre à maitriser gràce aux tutos et à la documentation (très bien fournie d'ailleur). Merci encore !

    @ manuscle : Merci aussi de ta réponse, j'ai testé ton code et celui ci focntionne sans soucis !!
    Une question reste encore, comment l'intégrer à mon formulaire déjà existant et par la suite remplir la liste avec une table de la base ??

    pour info voici le code dans lequel je compte intégrer cette liste :
    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
     
    // controller
     
    $this->view->title = "Ajouter un client";
    $form = new FormulaireClient();
    $form->submit->setLabel('Ajouter');
    $this->view->form = $form;
    	if ($this->_request->isPost()) 
    	{
    		$formData = $this->_request->getPost();
    		if ($form->isValid($formData)) 
    		{
    			$client = new Clients();
    			$row = $client->createRow();
    			$row->nom_client = $form->getValue('nom_client');
    			$row->responsable_client = $form->getValue('responsable_client');
    			$row->adresse_client = $form->getValue('adresse_client');
    			$row->code_postal_client = $form->getValue('code_postal_client');
    			$row->ville_client = $form->getValue('ville_client');
    			$row->mail_client = $form->getValue('mail_client');
    			$row->telephone_domicile_client = $form->getValue('telephone_domicile_client');
    			$row->telephone_bureau_client = $form->getValue('telephone_bureau_client');
    			$row->fax_client = $form->getValue('fax_client');
    			$row->commentaire_client = $form->getValue('commentaire_client');
     
                            $row->save();
    			$this->_redirect('/');
    		} 
    		else 
    		{
    			$form->populate($formData);
    			}
    }
     
    //vue 
    <html> 
    	<head>
    		<title>
    			<?php echo $this->escape($this->title); ?>
    		</title>
    	</head>
    	<body>
    			<?php echo $this->form ;?>
    	</body>
    </html>
    Sa inspire quelqu'un ??
    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !

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

Discussions similaires

  1. remplir une liste déroulante
    Par mademoizel dans le forum ASP
    Réponses: 19
    Dernier message: 08/03/2007, 16h33
  2. [Oracle] Remplir une liste déroulante avec une table
    Par CYCLOPE91440 dans le forum PHP & Base de données
    Réponses: 10
    Dernier message: 26/12/2006, 15h26
  3. Réponses: 12
    Dernier message: 28/11/2006, 15h34
  4. Remplir une liste déroulante à partir d'un champ dans une pop up
    Par wiam26 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/08/2006, 16h42
  5. [débutant] Remplir une liste déroulante
    Par Floch dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 12/05/2006, 13h39

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