Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/10/2011, 14h49   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
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 :
$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 :
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>
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 15h55   #2
Membre chevronné
 
Avatar de Farid63
 
Homme Farid
Inscription : janvier 2008
Messages : 368
Détails du profil
Informations personnelles :
Nom : Homme Farid
Âge : 26
Localisation : France, Puy de Dôme (Auvergne)

Informations forums :
Inscription : janvier 2008
Messages : 368
Points : 684
Points : 684
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 :
1
2
3
4
 
<option></option>
selected="selected"
<option></option>

Voilà pour l'instant.
Farid63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 16h56   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
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 :
1
2
3
4
 
<option></option>
selected="selected"
<option></option>

Voilà pour l'instant.
je répete
Citation:
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
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 25/10/2011, 17h14   #4
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Bonjour,

est-ce que tu peux faire un
Code :
print_r($donnees['situation']);
à l'appel de ta page et voir ce que contient ton tableau.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 18h02   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
Citation:
Envoyé par rawsrc Voir le message
Bonjour,

est-ce que tu peux faire un
Code :
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"
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 18h23   #6
Membre éclairé
 
Avatar de Inazo
 
Gérant - société de développement web
Inscription : avril 2007
Messages : 290
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 : 290
Points : 360
Points : 360
Bonjour,

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


Code :
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,
__________________
Si vous débutez en PHP : Tutoriel pour grands débutants

Mes tutoriels : http://alexandre-joly.developpez.com/
Inazo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 18h32   #7
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 462
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 462
Points : 2 552
Points : 2 552
Envoyer un message via Skype™ à rawsrc
Il faudrait que tu vérifies si dans ta boucle while tu as bien une valeur dans $situation.
Code :
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 :
$selected = ($donnees['valeur'] === $situation) ? ' selected="selected"' : NULL;
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2011, 19h44   #8
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
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..)
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 12h09   #9
Membre chevronné
 
Avatar de Marc3001
 
Homme
Ingénieur développement logiciels
Inscription : février 2008
Messages : 430
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : février 2008
Messages : 430
Points : 682
Points : 682
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
Marc3001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2011, 18h19   #10
Candidat au titre de Membre du Club
 
Inscription : janvier 2010
Messages : 52
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 52
Points : 11
Points : 11
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
djo007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2011, 00h21   #11
Membre chevronné
 
Avatar de Marc3001
 
Homme
Ingénieur développement logiciels
Inscription : février 2008
Messages : 430
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : février 2008
Messages : 430
Points : 682
Points : 682
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
Marc3001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 12h21.


 
 
 
 
Partenaires

Hébergement Web