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

PHP & Base de données Discussion :

liste déroulante dynamique php


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Par défaut liste déroulante dynamique php
    Bonjour à tous,

    J'ai un petit souci que je n'arrive pas à résoudre.
    Je veux faire une liste déroulante qui reprend les valeurs de ma table et de mettre le résultat dans $where[].
    Est ce que quelqu'un peut m'aider?

    Voici un morceau de mon code:

    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
     
    <?php
      echo '<select size=1 name="cat">'."\n"; 
      echo '<option value="-1">Propriétaire<option>'."\n"; 
     
      $sql = "SELECT id_infos,proprietaire FROM infos ORDER BY id_infos"; 
      $ReqLog = mysql_query($sql, $connexion); 
     
    	while ($resultat = mysql_fetch_row($ReqLog)) 
    	{ 
    		$where[]='.$resultat[0].'.$resultat[1]; 
    		echo '<option value=$where[]'; 
    		echo '</option>'."\n"; 
    	} 
    ?>

  2. #2
    Membre éclairé Avatar de Katachana
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 755
    Par défaut
    Tu as un exemple d'implémentation de liste déroulante dans les sources : Sources PHP


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      echo '<option value="-1">Propriétaire<option>'."\n";
    la balise option n'est pas fermée.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo '<option value=$where[]'; 
    		echo '</option>'."\n";
    la balise <option> n'a pas de '>' fermante. De plus tu ne met rien entre les deux balises option.

  3. #3
    Membre expérimenté Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Par défaut
    Je vois pas vraiment comment tu veux que tes données apparaissent.

    Il y a plusieurs problèmes dans ton code. Déjà ta balise option n'est pas fermée, il manque un ">". Quand tu utilise des simples quotes (les ' ) tu ne peux pas mettre de variable dedans et quand tu utilise des valeurs de tableaux dans des chaines, fait plutôt des concaténations :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    'Bonjour je suis '.$toto[1];
    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Bonjour je suis $toto[1]";
    Ensuite, sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $where[]='.$resultat[0].'.$resultat[1];
    Je vois pas pourquoi tu met le $resultat[0] entre quote. Parce que là ça va renvoyer la chaîne '.$resultat[0].' et pas la valeur que cela contient.

    Sur cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value=$where[]';
    Si tu veux accéder à la dernière valeur du $where, prend plutôt ta chaîne concaténée au dessus (ce qui est à droite du = sur la ligne du dessus).
    Du moins c'est comme ça que j'aurais fait.

  4. #4
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Par défaut correction
    Voilà, j'ai corrigé mon code mais ce n'est toujours pas bon!


    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
    <?php
    $conn = mysql_connect("localhost","root","") or die('Connection impossible : ' . mysql_error());
    	mysql_select_db("lcv", $conn);
      echo '<select size=1 name="proprietaire">'."\n"; 
      echo '<option value="-1">--- Propriétaire ---<option>'."\n"; 
     
      // Récupération des informations triées par ordre alphabétique 
      $sql = "SELECT id_infos,proprietaire FROM infos"; 
      $ReqLog = mysql_query($sql, $conn); 
     
    	while ($resultat = mysql_fetch_row($ReqLog)) 
    	{ 
    		$where[]=$resultat[0].$resultat[1];
    		echo '<option value=$where[]'.'></option>'."\n"; 
    	} 
    ?>

  5. #5
    Membre expérimenté Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Par défaut
    Non, tu n'as toujours rien entre les balises option et tu utilise toujours le $where[] entre simple quote.

  6. #6
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Par défaut
    Je ne coprends pas, qu'est ce qu'il faut que je mette entre mes balises option?

  7. #7
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Un peu de lecture
    Pourquoi ma variable n'est pas interprétée dans une chaine ?

    La syntaxe d'une balise select est :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <select name="nom_du_select">
      <option value="valeur_opt1">libelle 1</option>
      <option value="valeur_opt2">libelle 2</option>
      <option value="valeur_opt3">libelle 3</option>
    </select>
    PHP et les formulaires
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Avril 2009
    Messages : 168
    Par défaut
    Citation Envoyé par arnaud34 Voir le message
    Voilà, j'ai corrigé mon code mais ce n'est toujours pas bon!

    bonjour voici ce que tu dois ecrire:

    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
    <?php
    $conn = mysql_connect("localhost","root","") or die('Connection impossible : ' . mysql_error());
    	mysql_select_db("lcv", $conn);
      echo "<select size=1 name=\"proprietaire\">"."\n"; 
      echo "<option value=\"-1\">--- Propriétaire ---<option>"."\n"; 
     
      // Récupération des informations triées par ordre alphabétique 
      $sql = "SELECT id_infos,proprietaire FROM infos"; 
      $ReqLog = mysql_query($sql, $conn); 
     
    	while ($resultat = mysql_fetch_row($ReqLog)) 
    	{ 
    		$where="".$resultat[0]."".$resultat[1];
    		echo "<option value=\"$where\""."></option>"."\n"; 
    	} 
    ?>
    je pense que c'est mieux de declarer $where sous forme de variable que de la faire comme un tableau vu qu'il change de valeur a chaque passage dans la boucle

  9. #9
    Membre Expert
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Par défaut
    et en tenant compte de toute les remarques voila un select propre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $conn = mysql_connect("localhost","root","") or die('Connection impossible : ' . mysql_error());
    	mysql_select_db("lcv", $conn);
      echo '<select size=1 name="proprietaire">
    			<option value="-1">--- Propriétaire ---<\option>';    
      // Récupération des informations triées par ordre alphabétique 
      $sql = "SELECT id_infos,proprietaire FROM infos"; 
      $ReqLog = mysql_query($sql, $conn) or die(mysql_error()); 
    	while ($res = mysql_fetch_row($ReqLog)) 
    	{ 
    		echo '<option value="'.$res[0].'">'.$res[1].'</option>'; 
    	} 
    	echo '</select>';

  10. #10
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Par défaut
    Et normalement avec ça, je devrais pouvoir afficher le choix, mais ça ne marche pas.


    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
    <?php
    $conn = mysql_connect("localhost","root","") or die('Connection impossible : ' . mysql_error());
    	mysql_select_db("lcv", $conn);
      echo '<select size=1 name="proprietaire">
    			<option value="-1">--- Propriétaire ---<\option>';    
      // Récupération des informations triées par ordre alphabétique 
      $sql = "SELECT id_infos,proprietaire FROM infos"; 
      $ReqLog = mysql_query($sql, $conn) or die(mysql_error()); 
    	while ($res = mysql_fetch_row($ReqLog)) 
    	{ 
    		echo '<option value="'.$res[0].'">'.$res[1].'</option>'; 
    	} 
    ?><input type="submit" name="btsave" value="OK" />	<?php
     
     
    	if(isset($_POST['btsave']))
    		{
    		if(isset($_POST['proprietaire']))
    			{
    			echo '</select>';
    			}
    		}
    	?>

    Merci

Discussions similaires

  1. [PDO] Liste déroulantes dynamiques php&PDO seulement submit()
    Par sangoke dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 23/04/2013, 14h05
  2. Ajout d'une liste déroulante dynamique (PHP / Javascript)
    Par kelaan dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/12/2011, 13h01
  3. Liste Déroulante Dynamique [php et javascript]
    Par djazz dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/08/2007, 18h03
  4. [SQL] Liste déroulante dynamique PHP only
    Par gforce dans le forum PHP & Base de données
    Réponses: 24
    Dernier message: 11/05/2006, 21h30
  5. [PHP-JS] Création de liste déroulante dynamique
    Par eeckhout dans le forum Langage
    Réponses: 2
    Dernier message: 28/02/2006, 13h41

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