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

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 4
    Points
    4
    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 confirmé 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
    Points : 503
    Points
    503
    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 actif Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Royaume-Uni

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Points : 233
    Points
    233
    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
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 4
    Points
    4
    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 actif Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Royaume-Uni

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

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

  6. #6
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 4
    Points
    4
    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 : 39
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    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 régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : Cameroun

    Informations forums :
    Inscription : Avril 2009
    Messages : 168
    Points : 122
    Points
    122
    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 expérimenté
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    1 349
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    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>';
    Stay in Bed .. Save Energy

  10. #10
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 10
    Points : 4
    Points
    4
    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

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

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 349
    Points : 1 460
    Points
    1 460
    Par défaut
    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
    <?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>'; 
    	} 
    	echo '</select>
    <input type="submit" name="btsave" value="OK" />'	
     
    if(isset($_POST['btsave'])){
    		echo $_POST['proprietaire'];
    }
    	?>

    mais je ne vois null part de balise form donc renseigne toi sur comment faire un formulaire dans les tutos de dvp car c'est la base..!!!
    Stay in Bed .. Save Energy

  12. #12
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    <option value="-1">--- Propriétaire ---<\option>';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="-1">--- Propriétaire ---</option>';
    mais je ne vois null part de balise form donc renseigne toi sur comment faire un formulaire dans les tutos de dvp car c'est la base..!!!
    Citation Envoyé par Celira

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