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 sous forme de fonction


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 87
    Par défaut Liste déroulante sous forme de fonction
    Bonjour,

    Voilà mon problème:
    je crée un formulaire en php avec plusieurs liste déroulante, j'ai trouvé un code pour faire cette liste déroulant (qui va lire dans une table mysql) mais pour éviter de la réécrire 15 fois je souhaite la mettre sous forme de fonction:
    exemple d'utilisation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
         MenuDeroulant(fabricant,IDFab,NomFabricant)
    voici le code de ma fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function MenuDeroulant($table,$identifiant,$donnee)
    {
    	echo "<SELECT Name=identifiant Size=1><OPTION Value=0></OPTION>";
    	$sql= "SELECT * FROM table ORDER BY IDFab ASC";
    	$rep= mysql_query($sql);
    	while($ligne_liste=mysql_fetch_array($rep))
    	{
    		echo "<OPTION Value=\"".$ligne_liste['identifiant']."\">".$ligne_liste['donnee']."</OPTION>";
    	}
    	echo "</SELECT>";
    }
    Lorsque j'éxécute mon code, je vois apparaitre la liste déroulante avec le nombre de ligne correspondant à ma table mais les champs sont vides.
    Je ne comprends pas pourquoi, avez vous une solution?

    Merci d'avance
    Mikke

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    A aucun endroit tu utilises les variables passées en paramètre.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 87
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function MenuDeroulant($table,$identifiant,$donnee)
    {
    	echo "<SELECT Name=$identifiant Size=1><OPTION Value=0></OPTION>";
    	$sql= "SELECT * FROM $table ORDER BY IDFab ASC";
    	$rep= mysql_query($sql);
    	while($ligne_liste=mysql_fetch_array($rep))
    	{
    		echo "<OPTION Value=\"".$ligne_liste['$identifiant']."\">".$ligne_liste['$donnee']."</OPTION>";
    	}
    	echo "</SELECT>";
    }
    Comme ça? c'est la mon problème... avec le symbole $ que je ne sais pas qd placer...

  4. #4
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 931
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 931
    Par défaut
    Ta liste déroulante doit renvoyer la liste des données contenues dans $table c'est ça ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function MenuDeroulant( $table, $identifiant, $donnee )
    {
       echo '<select name="' . $identifiant . '"><option value="0"></option>';
       $sql = 'SELECT * FROM ' . $table . ' ORDER BY ' . $identifiant . ' ASC';
       $rep = mysql_query( $sql );
       while ( $ligne_liste = mysql_fetch_array( $rep ) )
       {
          echo '<option value="' . $ligne_liste[$identifiant] . '">' . $ligne_liste[$donnee] . '</option>';
       }
       echo '</select>';
    }
    Je pense qu'un truc comme ça devrait aller. Malheureusement je ne connais pas la structure de ta base ni de tes tables. En tout cas d'après ce que tu nous as dit ça me semble le plus cohérent.

  5. #5
    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
    En fait, toutes les variables en php commencent par le symbole $ (sauf constantes fixées, mais bon on va pas chipoter)
    Donc à partir du moment où tu utilises une variable, elle doit commencer par $
    Pour en savoir plus sur les variables : FAQ PHP : les variables
    Bon courage !
    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]

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 87
    Par défaut
    ok mais lorsque j'utilise:
    dois-je mettre un $ devant IDFab ?
    J'ai essayer toutes les possibilitées mes champs de données dans le menu déroulant restait vide...
    Encore une question: pourquoi certaines variables sont entre 2 points:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .$ligne_liste['NomFabricant'].

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 87
    Par défaut
    Excuse moi bisunurs, je n'avais pas vu ta réponse !!!

    J'ai essayer ton code et maintenant ça marche!!
    Oui effectivement je voulais afficher les données de la colonne NomFabricant contenu dans la table fabricant.


    Merci beaucoup,

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 87
    Par défaut
    Ah encore une question:
    Si c'est possible, j'aimerais pouvoir rajouter un NomFabricant dans ma table fabricant en le tapant dans le menu déroulant. (avec un bouton ok pour valider l'entrée et une requete mysql derrirere!)
    Je sais pas si vous me suivez
    Je sais que dans access c'est possible mais bon c'est autre chose...

Discussions similaires

  1. Liste déroulante sous forme de dossier
    Par paladice dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 17/09/2013, 14h00
  2. Réponses: 4
    Dernier message: 04/05/2007, 12h23
  3. Réponses: 1
    Dernier message: 03/01/2007, 21h34
  4. Réponses: 1
    Dernier message: 04/07/2006, 23h11

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