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 :

Liste déroulante Requête SQL Valeur par défaut


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut Liste déroulante Requête SQL Valeur par défaut
    Bonjour,

    Pour un projet d'école j'ai créer un formulaire de ce type

    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
    echo'<form method="post">  Nom du Poste
    	<select name="nomposte" id="nomposte"> ';
    	$sql= "SELECT NomPoste FROM ordinateur"; 
    	$liste = mysql_query($sql); 
    	while ($valeur=mysql_fetch_array($liste)) 
    	{ 
    	echo "<option>".$valeur["NomPoste"]."</option>"; 
    	} 
    	echo'</select>';
    	echo'
    	ecran 
    	<select name="nomecr" id="nomecr"> ';
    	$sql= "SELECT nomecran FROM ecran"; 
    	$liste = mysql_query($sql); 
    	while ($valeur=mysql_fetch_array($liste)) 
    	{ 
    	echo "<option>".$valeur["nomecran"]."</option>"; 
    	} 
    	echo'</select> ';
    Ce n'est qu'un résumé car j'ai beaucoup de liste déroulantes qui récupèrent le nom des postes, écrans, imprimantes etc..

    En fait, je n'ai pas trouver de solution mais quand je veux modifier par exemple un poste pour un user, la valeur par défaut est la valeur tout en haut de la liste.. du coup c'est pas très pratique, pour modifier un truc, il faut faire attention a bien modifier chaque liste déroulante ! J'aimerais que la valeur par défaut soit celle qui correspond à l'user en question ... Le peu de chose que j'ai trouvé n'a pas fonctionné...

    Merci pour votre aide

    Cordialement

  2. #2
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    Je suppose que tu as une table des utilisateurs avec dedans pour chaque utilisateur: le nom du poste, le nom de l'écran etc ...

    Avec le code suivant celà te permettrait de réussir ...
    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
     
    // Nous récupérons les nom de poste, nom d'écran etc dans des variables
    $nomPoste = ...;
    $nomEcran = ...;
     
    // Le html
    echo'<form method="post">  Nom du Poste
    	<select name="nomposte" id="nomposte"> ';
    	$sql= "SELECT NomPoste FROM ordinateur"; 
    	$liste = mysql_query($sql); 
    	while ($valeur=mysql_fetch_array($liste)) 
    	{ 
                     if( $valeur["NomPoste"] == $nomPoste)
                           echo '<option value="1" selected>'.$valeur["NomPoste"].'</option>';
                     else
                          echo '<option value="1">'.$valeur["NomPoste"].'</option>';
     
    // de même pour les autres
     
                 } 
    	echo'</select>';
     
    // etc ....
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  3. #3
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Merci beaucoup de m'avoir donné une piste.. je viens d'essayer
    il y a du changement, seulement ça ne fonctionne pas.. Maintenant le champ par défaut est le dernier de ma table..

    Pour info en début de page je fais une requête

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $req="select *
     from utilisateur, ordinateur, local, ecran, imprimante
     where utilisateur.IdUser=ordinateur.IdUser and ordinateur.NomLocal = local.NomLocal and local.NomLocal = imprimante.NomLocal and imprimante.NomLocal = ecran.NomLocal and utilisateur.IdUser='$iduser'";
    Ensuite j'associe les variables :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $prenom = $lgassoc['Prenom'];
    $nom = $lgassoc['Nom'];
    $Login = $lgassoc['Login'];
    Du coup j'ai bien fait ton code mais la valeur par défaut n'est pas la bonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    echo'<form method="post">  Nom du Poste
    	<select name="nomposte" id="nomposte"> ';
    	$sql= "SELECT NomPoste FROM ordinateur"; 
    	$liste = mysql_query($sql); 
    	while ($valeur=mysql_fetch_array($liste)) 
    	{ 
                     if( $valeur["NomPoste"] == $nomposte)
                           echo '<option value="1" selected>'.$valeur["NomPoste"].'</option>';
                     else
                          echo '<option value="1">'.$valeur["NomPoste"].'</option>';
    	} 
    	echo'</select>';
    Je ne vois pas ce qui coince..

  4. #4
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    J'avais fait un edit pour modifier mon code mais peut être que ne la pas vu ...

    C'est pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                     if( $valeur["NomPoste"] == $nomposte)
                           echo '<option value="1">'.$valeur["NomPoste"].'</option>';
                     else
                          echo '<option value="1" selected>'.$valeur["NomPoste"].'</option>';
    Mais 'selected' dans le if et non pas le else
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  5. #5
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Ah oui exact.. je viens d'inverser mais ça ne fonctionne pas.. cette fois la valeur par défaut est le premier champ de la liste. .

    EDIT = Pardon, ça fonctionne j'avais fais une erreur en haut de mon code !

    Merci beaucoup pour l'aide !

  6. #6
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Tu peux essayer un selected="selected" pour la balise <option> mais j'y crois pas trop ...

    Sinon tu as vérifié la valeur de $nomposte avec un echo par exemple ?

    EDIT=OK
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  7. #7
    Futur Membre du Club
    Inscrit en
    Janvier 2011
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 10
    Points : 6
    Points
    6
    Par défaut
    Bonjour,

    je me permet de ré ouvrir rapidement le sujet pour un petit souci..

    quand j'envoi mon formulaire sur modifuserok.php il ne récupère pas les bonnes informations de mes listes déroulantes...

    quand j'affiche ce qu'il récupère :

    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
    //récupération des données du formulaire
    $prenom=$_REQUEST['prenom'];
    $nom=$_REQUEST['nom'];
    $iduser=$_REQUEST['iduser'];
    $nomposte = $_POST['nomposte'];
    $nomlocal = $_POST['nomlocal'];
    $nomecran = $_POST['nomecr'];
    $nomimprimante = $_POST['nomimprimante'];
    $login = $_POST['login'];
     
    echo $nomlocal, $nomposte, $prenom;//récupération des données du formulaire
    $prenom=$_REQUEST['prenom'];
    $nom=$_REQUEST['nom'];
    $iduser=$_REQUEST['iduser'];
    $nomposte = $_POST['nomposte'];
    $nomlocal = $_POST['nomlocal'];
    $nomecran = $_POST['nomecr'];
    $nomimprimante = $_POST['nomimprimante'];
    $login = $_POST['login'];
     
    echo $nomlocal, $nomposte, $prenom;
    il m'affiche

    11 Jean-Phillippe

    au lieu de quelque chose du style

    BPBXXXX CFG2012XXXX Jean-Philippe

    donc pas de souci pour le prénom, juste pour les listes déroulantes.. j'ai essayé de changer post en request et vise versa mais rien n'y fait (désolée je ne me rappelle plus de celui qu'il faut mettre dans le cas d'une liste déroulante? il me semblait que c'était request..)

    cordialement

    EDIT : Autant pour moi.. l'erreur venait visiblement de mon option :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                           echo '<option value="1" selected>'.$valeur["NomImprimante"].'</option>';
                     else
                          echo '<option value="1">'.$valeur["NomImprimante"].'</option>';
    du coup si je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                           echo '<option selected>'.$valeur["NomImprimante"].'</option>';
                     else
                          echo '<option>'.$valeur["NomImprimante"].'</option>';
    ca fonctionne nickel la variable s'affiche ! par contre comment je pourrais adapter cette structure pour une liste fixe ?? de ce type :
    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
    JOUR
    <select name="Jour">
    <option value="01">01</option>
    <option value="02">02</option>
    <option value="03">03</option>
    <option value="04">04</option>
    <option value="05">05</option>
    <option value="06">06</option>
    <option value="07">07</option>
    <option value="08">08</option>
    <option value="09">09</option>
    <option value="10">10</option>
    <option value="11">11</option>
    <option value="12">12</option>
    <option value="13">13</option>
    <option value="14">14</option>
    <option value="15">15</option>
    <option value="16">16</option>
    <option value="17">17</option>
    <option value="18">18</option>
    <option value="19">19</option>
    <option value="20">20</option>
    <option value="21">21</option>
    <option value="22">22</option>
    <option value="23">23</option>
    <option value="24">24</option>
    <option value="25">25</option>
    <option value="26">26</option>
    <option value="27">27</option>
    <option value="28">28</option>
    <option value="29">29</option>
    <option value="30">30</option>
    <option value="31">31</option>
    </select>
    j'aimerais dans le même cas, qu'au début de cette discussion, le jour soit affiché si il est renseigner sinon il soit sur une valeur par défaut .. Dois je faire une table dédié aux dates ?

    Merci pour votre aide

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 07/11/2007, 18h48
  2. Liste de choix et valeur par défaut
    Par vic dans le forum Langage SQL
    Réponses: 1
    Dernier message: 07/05/2007, 21h51
  3. [SQL] Valeur par défaut.
    Par aityahia dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 04/07/2006, 16h42
  4. liste déroulante, requête SQL et valeur par défaut
    Par flukie dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 02/06/2006, 11h59
  5. liste déroulante. positionnement sur valeur par défaut
    Par mathieu_r dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 28/06/2005, 15h45

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