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 :

[Conception] Récupèrer une variable dans une liste déroulante


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Points : 35
    Points
    35
    Par défaut [Conception] Récupèrer une variable dans une liste déroulante
    Bonjour,
    J'ai un formulaire. Quand je valide ce formulaire, j'effectue des vérifications sur les champs. On arrive donc sur une autre page sur laquelle les anomalies du formulaire sont marquées. Il ya aussi un bouton retour sur cette page.
    C'est là que se pose mon problème. Quand je clique sur le bouton Retour je retourne dans la page du formulaire et je voudrais que les champs corrects de mon formulaire reste remplie.

    Cela fonctionne quand j'ai un champ text mais pas quand j'ai une liste déroulante,je récupère quand même le bon champs mais je n'arrive pas a l'afficher dans ma liste.

    Voici mon code de ma liste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <select name="Realisateur" value"<? echo $varrealisateur1; ?>"><option value=""></option>
    <?php while ($row=mysql_fetch_array($req2)) { ?>
    <option value="<?php echo $row['FldIdRealisateur'] ; ?>"<?php if (!(strcmp($Realisateur,$row['FldIdRealisateur']))) echo "selected" ; ?>><?php echo $row['FldRealisateur']; ?></option>
    <?php } ?></select>
    et voici le code dans lequel je récupere ma variable :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $varrealisateur =isset($_GET['Realisateur'])?$_GET['Realisateur']:""; 
    $sqlrealisateur = 'SELECT FldRealisateur FROM tblrealisateur where FldIdRealisateur="' .$varrealisateur. '"';// on crée la requête SQL
    $varrealisateur = mysql_query($sqlrealisateur) or die('Erreur SQL !<br>'.$sqlrealisateur.'<br>'.mysql_error());// on envoie la requête
    while ($rows=mysql_fetch_array($varrealisateur)) {
    	echo $rows['FldRealisateur']; 
    	$varrealisateur1 = $rows['FldRealisateur']; }
    Merci

  2. #2
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Si j'ai bien compris au retour de ton contrôle de formulaire, tu veux retrouver la valeur de ton select...

    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
     
    $varrealisateur =isset($_GET['Realisateur'])?$_GET['Realisateur']:""; 
    $sqlrealisateur = 'SELECT FldRealisateur FROM tblrealisateur ';// on crée la requête SQL
    $varrealisateur = mysql_query($sqlrealisateur) or die('Erreur SQL <br/>'.$sqlrealisateur.'<br/>'.mysql_error());// on envoie la requête
    ?>
    <select name="Realisateur">
    <?php
    while ($rows=mysql_fetch_array($varrealisateur)) {
    	if ($varrealisateur == $rows["FldRealisateur"])
                  echo '<option value="'.$row["FldIdRealisateur"].'" selected="selected">'.$row['FldRealisateur'].'</option>';
            else
                  echo '<option value="'.$row["FldIdRealisateur"].'">'.$row['FldRealisateur'].'</option>';
    }
    ?>
    </select>
    Voilà... ca me semble pas si complexe...
    ++

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Points : 35
    Points
    35
    Par défaut
    oui c'est ca que je veux faire mais ton morceau de code ne marche pas.Lorsque je reviens sur ma page le champs est toujours vide.

  4. #4
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Puis-je avoir le code de ton formulaire?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Points : 35
    Points
    35
    Par défaut
    voici les deux pages concernées.La page AjoutDVD a pour action essai1.
    Merci
    Fichiers attachés Fichiers attachés

  6. #6
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    oui, en fait c'est normal! je n'avais pas tout regardé.
    sur la troisième ligne, tu écrases ta variable. je te conseille donc ceci en admettant que ton formulaire soit envoyé en GET chose qu'on ne fait pas vraiment...
    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
     
     if (isset($_GET['Realisateur']))
          $id_realisateur = $_GET['Realisateur']; 
    $sqlrealisateur = 'SELECT FldRealisateur FROM tblrealisateur ';// on crée la requête SQL
    $varrealisateur = mysql_query($sqlrealisateur) or die('Erreur SQL <br/>'.$sqlrealisateur.'<br/>'.mysql_error());// on envoie la requête
    ?>
    <select name="Realisateur">
    <?php
    while ($rows=mysql_fetch_array($varrealisateur)) {
    	if ($id_realisateur == $rows["FldIdRealisateur"])
                  echo '<option value="'.$row["FldIdRealisateur"].'" selected="selected">'.$row['FldRealisateur'].'</option>';
            else
                  echo '<option value="'.$row["FldIdRealisateur"].'">'.$row['FldRealisateur'].'</option>';
    }
    ?>
    </select>
    ++

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Points : 35
    Points
    35
    Par défaut
    Si je met mon formulaire en GET je me dirige sur une page où rien ne s'affiche.

  8. #8
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Sur ta première page ton formulaire est envoyé en POST.
    Ensuite tu utilises un lien de retour avec les paramètres de l'identifiant. tu dois donc réceptionner les paramètres de retour en GET.
    donc le dernier code que je t'ai donné doit fonctionner.

    ++

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Points : 35
    Points
    35
    Par défaut
    j ai ajouté ton code a ma page AjoutDVd ;ma liste de données est chargé mais rien ne s'affiche

  10. #10
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Est ce que je peux le voir en ligne...???

    ton select doit être affiché et avec du contenu!!!
    donne moi plus de détail, il est anormal que RIEN ne s'affiche!

    ++

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Points : 35
    Points
    35
    Par défaut
    voici le code dans la page AjoutDVd

    voila mon code pour la declaration des variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $vartitre =isset($_GET['Titre'])?$_GET['Titre']:"";
    if (isset($_GET['Realisateur'])) $id_realisateur = $_GET['Realisateur'];
    $sqlrealisateur = 'SELECT FldRealisateur FROM tblrealisateur ';// on crée la requête SQL
    $varrealisateur = mysql_query($sqlrealisateur) or die('Erreur SQL <br/>'.$sqlrealisateur.'<br/>'.mysql_error());// on envoie la requête
    voici mon code pour le select
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <select name="Realisateur">
    <?php
    while ($rows=mysql_fetch_array($varrealisateur)) {
    	if ($id_realisateur == $rows["FldIdRealisateur"])
                  echo '<option value="'.$row["FldIdRealisateur"].'" selected="selected">'.$row['FldRealisateur'].'</option>';
            else
                  echo '<option value="'.$row["FldIdRealisateur"].'">'.$row['FldRealisateur'].'</option>';
    }
    ?>
    </select>

  12. #12
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    essaie ceci...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <select name="Realisateur">
    <?php
    while ($rows=mysql_fetch_array($varrealisateur)) {
    	if ($id_realisateur == $rows["FldIdRealisateur"])
                  echo '<option value="'.$rows["FldIdRealisateur"].'" selected="selected">'.$rows['FldRealisateur'].'</option>';
            else
                  echo '<option value="'.$rows["FldIdRealisateur"].'">'.$rows['FldRealisateur'].'</option>';
    }
    ?>
    </select>
    Il manquait les 's' à $row ... faut chercher aussi un peu

    ++

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Points : 35
    Points
    35
    Par défaut
    ok ok mais quand je reviens sur la premiere page suite a une erreur j ai le dernier champs de selectionner mais pas celui de depart

  14. #14
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    ca veut dire quoi suite à une erreur???

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Points : 35
    Points
    35
    Par défaut
    je me suis mal exprimer lorsque je suis rediriger vers ma premiere page le suite a une erreur voulait dire suite a un controle effectue.

  16. #16
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    ok. Il te reste donc à vérifier que la condition suivante soit vraie

    if ($id_realisateur == $rows["FldIdRealisateur"])

    ++

  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Points : 35
    Points
    35
    Par défaut
    La je ne comprends plus car cette condition est déja vérifier dans le select

  18. #18
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Cette condition te sert à savoir quel choix avait fait l'utilisateur dans ta liste déroulante. Il ne s'agit pas d'un contrôle.

    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
     
     if (isset($_GET['Realisateur']))//je test l'existence de l'id realisateur renvoyé par mon lien retour.
          $id_realisateur = $_GET['Realisateur']; // je place le résultat dans id_realisateur
    $sqlrealisateur = 'SELECT FldRealisateur FROM tblrealisateur ';// on crée la requête SQL
    $varrealisateur = mysql_query($sqlrealisateur) or die('Erreur SQL <br/>'.$sqlrealisateur.'<br/>'.mysql_error());// on envoie la requête
    ?>
    <select name="Realisateur">
    <?php
    while ($rows=mysql_fetch_array($varrealisateur)) {
    	if ($id_realisateur == $rows["FldIdRealisateur"])// je test l'id realisateur du choix de mon utilisateur avec l'id realisateur de ma requête SQL
                  echo '<option value="'.$rows["FldIdRealisateur"].'" selected="selected">'.$rows['FldRealisateur'].'</option>';// si = j'affiche le selected
            else
                  echo '<option value="'.$rows["FldIdRealisateur"].'">'.$rows['FldRealisateur'].'</option>';//sinon pas de selected
    }
    ?>
    </select>

  19. #19
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 77
    Points : 35
    Points
    35
    Par défaut
    Ca ne marche toujours pas j ai oujours le dernier enregistrement comme résultat.

  20. #20
    Membre confirmé Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Points : 547
    Points
    547
    Par défaut
    Oui évidemment!

    Mais tu cherches pas beaucoup je crois... dans ta requête SQL tu sélectionnes juste ton champ realisateur et donc tu ne peux pas comparer les ID

    remplace :
    SELECT FldRealisateur FROM tblrealisateur
    par :
    SELECT FldIdRealisateur, FldRealisateur FROM tblrealisateur

    ca va venir....

    ++

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. portée d'une variable dans une fonction dans une méthode
    Par laurentg2003 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/06/2009, 19h05
  2. Récupérer le nom d'une colonne d'une table dans une variable
    Par mimi51340 dans le forum Général Java
    Réponses: 4
    Dernier message: 13/03/2008, 14h23
  3. [MySQL] Récupérer le résultat d'une requête dans une variable
    Par kryogen dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 22/10/2007, 14h29
  4. Réponses: 5
    Dernier message: 28/09/2007, 14h58
  5. Comment récupérer le contenu d'une URL dans une variable ?
    Par Fildz dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/08/2006, 09h26

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