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 :

Appel d'une variable dans un while


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut Appel d'une variable dans un while
    Bonjour à tous,

    j'ai un petit souci avec ma requette "While"

    Je m'explique,

    en haut de ma page je récupère les informations du patient nom prénom age situation etc.. pour exemple si le patient est célibataire la variable me retourneras célibataire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $situation	 = htmlentities($donnees['situation']);
    Dans ma page j'ai un select qui permet ici de modifier la situation, j'ai un table qui regroupe tout ce que contient les "SELECT" donc je vais les chercher sur ma base sa m'affiche bien la liste dans le navigateur.
    jusque la tout vas bien.

    Maintenant je veux que lorsque ma page est rafraichi ou lors de l'ouverture peut importe, que l'info du patient soit selectionné, donc pour sa j'utilise selected="selected" pour ce la j'utilise un petit bou de code qui va contrôlé si la variable $situation est égale à $valeur.

    mon problème est ici, le faite d'appeler la variable $situation dans le while à l'aire de posé problème car la variable semble ce trouver vide...

    avez une solution afin de résoudre ce problème ? Merci

    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
     
    <select name="situation" id="typesituation" onchange="changementType();">
    <option value=""></option>
    <?php
    $sql = mysql_query("select selections, valeur from complementaire where selections = 'situation' ORDER BY valeur ASC");
     
    while ($donnees = mysql_fetch_array($sql)){
     
    echo'<option value="'.htmlentities($donnees['valeur']).'"';
    $valeur = htmlentities($donnees['valeur']);
    if ($valeur == $situation){echo 'selected="selected"';}
    							echo'>'.htmlentities($donneess['valeur']).'</option>';
     
    } ?>
    <option value="Autre">Autre</option>                        
    </select>

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Points : 1 370
    Points
    1 370
    Par défaut
    Salut,
    désolé de te dire ça mais ce n'est pas très claire...

    Normalement tu devrais pouvoir utiliser ta variable dans ton while, là on ne voit pas où elle est créée donc je peux pas t'en dire plus.

    Je pense aussi que ton code PHP est mal placé, si jamais ça affiche selected="selected", ça le fera pas au bon endroit mais entre 2 balise <option>.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <option></option>
    selected="selected"
    <option></option>

    Voilà pour l'instant.

  3. #3
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par Farid63 Voir le message
    Salut,
    désolé de te dire ça mais ce n'est pas très claire...

    Normalement tu devrais pouvoir utiliser ta variable dans ton while, là on ne voit pas où elle est créée donc je peux pas t'en dire plus.

    Je pense aussi que ton code PHP est mal placé, si jamais ça affiche selected="selected", ça le fera pas au bon endroit mais entre 2 balise <option>.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <option></option>
    selected="selected"
    <option></option>

    Voilà pour l'instant.
    je répete
    en haut de ma page je récupère les informations du patient nom prénom age situation etc.. pour exemple si le patient est célibataire la variable me retourneras célibataire
    et si tu lit bien le code le selected s'affiche a condition que la $valeur et égale à $situation si c'est pas le cas IF n'afficheras rien

  4. #4
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonjour,

    est-ce que tu peux faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($donnees['situation']);
    à l'appel de ta page et voir ce que contient ton tableau.

  5. #5
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par rawsrc Voir le message
    Bonjour,

    est-ce que tu peux faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    print_r($donnees['situation']);
    à l'appel de ta page et voir ce que contient ton tableau.
    sa me retourne bien ce que contient le champ situation de la table correspondant au patient
    en l’occurrence "Célibataire"

  6. #6
    Membre confirmé Avatar de Inazo
    Profil pro
    Gérant - société de développement web
    Inscrit en
    Avril 2007
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Gérant - société de développement web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 417
    Points : 632
    Points
    632
    Par défaut
    Bonjour,

    C'est normal car tu ne demande pas le champs situation à MySQL donc il ne va pas te le donner dans $donnees :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    //--- Tu veux avoir ça :
    $situation	 = htmlentities($donnees['situation']);
     
    //--- Dans ce cas ta requete en amont doit être 
    $sql = mysql_query("select situation, selections, valeur from complementaire where selections = 'situation' ORDER BY valeur ASC");
    Mais j'avoue que ton problème est loin d'être limpide.

    Cordialement,

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Il faudrait que tu vérifies si dans ta boucle while tu as bien une valeur dans $situation.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <select name="situation" id="typesituation" onchange="changementType();">
       <option value=""></option>
       <?php
       $sql = mysql_query("select selections, valeur from complementaire where selections = 'situation' ORDER BY valeur ASC");
       while($donnees = mysql_fetch_array($sql)) {
          $data = htmlentities($donnees['valeur']);
          // print_r($situation); vérifie si tu as bien une valeur à cet endroit
          $selected = ($data === $situation) ? ' selected="selected"' : NULL;
          echo '<option value="'.$data.'"'.$selected.'>'.$data.'</option>';
       }
       ?>
       <option value="Autre">Autre</option>
    </select>
    Si tu as bien une valeur dans ta boucle, le problème viendrait de la comparaison. Comment tu protèges ta valeur dans ta fonction changementType() ? Il se peut qu'avec htmlentities() tu n'aies pas la même protection. C'est une des raisons pour lesquelles il est souvent moins problématique d'utiliser des id numériques.

    En js avant d'envoyer des valeurs texte il est préférable d'utiliser encodeURIComponent(). Ensuite essaies avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $selected = ($donnees['valeur'] === $situation) ? ' selected="selected"' : NULL;

  8. #8
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    j'ai fais ce que tu ma donnée pis j'utilise a présent l'id (j'avais prévu de le faire aussi, maintenant c'est fait)
    Donc ton code fonctionne c'est bizar.. je comprend pas..

    Pour changementType() j'utilise pas sa pour enregistrer dans la bdd, sa me permet juste d'afficher un champ vide si on selectionne "Autre", qui va donc permettre d'ajouter une autre situation

    J'avais essayé de retirer htmlentities() pour les variable pour voir justement si sa venais de sa, j'avais meme utiliser les ID mais rien a faire sa ne fonctionne pas la manière que j’utilisais donc je comprend pas pourquoi ton code marche est pas le miens..

    autre chose sous FX quand je fais un refresh "F5" de la page il affiche pas la selection dans le champ mais dans le code source il a bien ajouté un selected devant (problème FX je pense..)

  9. #9
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Citation Envoyé par djo007 Voir le message
    J'avais essayé de retirer htmlentities() pour les variable pour voir justement si sa venais de sa, j'avais meme utiliser les ID mais rien a faire sa ne fonctionne pas la manière que j’utilisais donc je comprend pas pourquoi ton code marche est pas le miens..
    T'avais essayé d'afficher la valeur des 2 variables avant de les tester histoire de voir exactement ce quelles contiennent?
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

  10. #10
    Membre régulier
    Homme Profil pro
    Consultant process engineer industrial
    Inscrit en
    Janvier 2010
    Messages
    148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant process engineer industrial
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 148
    Points : 93
    Points
    93
    Par défaut
    Citation Envoyé par Marc3001 Voir le message
    T'avais essayé d'afficher la valeur des 2 variables avant de les tester histoire de voir exactement ce quelles contiennent?
    salut marc la variable $valeur contient bien l'ID mais bizarrement la variable $situation ne retourne rien une fois mise dans le while

  11. #11
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Tu peux balancer tout le code de ta page?
    Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

    Linus Torvalds

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

Discussions similaires

  1. [Js Photoshop] Appel d'une variable dans une autre fonction
    Par bugg01 dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 29/04/2014, 13h45
  2. Réponses: 2
    Dernier message: 24/03/2009, 09h09
  3. Réponses: 6
    Dernier message: 18/04/2007, 11h47
  4. Réponses: 1
    Dernier message: 27/02/2007, 11h28
  5. Réponses: 3
    Dernier message: 29/05/2006, 23h46

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