Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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 20/02/2007, 21h02   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 77
Points : 14
Points : 14
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 :
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 :
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
olivier94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2007, 21h17   #2
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

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

Code :
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...
++
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2007, 21h28   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 77
Points : 14
Points : 14
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.
olivier94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2007, 21h30   #4
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
Puis-je avoir le code de ton formulaire?
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2007, 21h35   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 77
Points : 14
Points : 14
voici les deux pages concernées.La page AjoutDVD a pour action essai1.
Merci
Fichiers attachés
Type de fichier : php AjoutDVD.php (10,4 Ko, 4 affichages)
Type de fichier : php essai1.php (4,0 Ko, 4 affichages)
olivier94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2007, 21h35   #6
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
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 :
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>
++
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2007, 21h44   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 77
Points : 14
Points : 14
Si je met mon formulaire en GET je me dirige sur une page où rien ne s'affiche.
olivier94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 08h38   #8
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
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.

++
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 09h52   #9
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 77
Points : 14
Points : 14
j ai ajouté ton code a ma page AjoutDVd ;ma liste de données est chargé mais rien ne s'affiche
olivier94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 09h55   #10
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
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!

++
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 09h57   #11
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 77
Points : 14
Points : 14
voici le code dans la page AjoutDVd

voila mon code pour la declaration des variables
Code :
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 :
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>
olivier94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 10h02   #12
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
essaie ceci...

Code :
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

++
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 10h43   #13
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 77
Points : 14
Points : 14
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
olivier94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 10h44   #14
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
ca veut dire quoi suite à une erreur???
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 10h51   #15
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 77
Points : 14
Points : 14
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.
olivier94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 10h54   #16
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
ok. Il te reste donc à vérifier que la condition suivante soit vraie

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

++
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 11h11   #17
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 77
Points : 14
Points : 14
La je ne comprends plus car cette condition est déja vérifier dans le select
olivier94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 11h19   #18
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
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 :
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>
defcon_suny est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 11h33   #19
Candidat au titre de Membre du Club
 
Inscription : janvier 2007
Messages : 77
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 77
Points : 14
Points : 14
Ca ne marche toujours pas j ai oujours le dernier enregistrement comme résultat.
olivier94 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2007, 11h44   #20
Membre éprouvé
 
Avatar de defcon_suny
 
Développeur informatique
Inscription : décembre 2006
Messages : 436
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : décembre 2006
Messages : 436
Points : 486
Points : 486
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....

++
defcon_suny 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 04h38.


 
 
 
 
Partenaires

Hébergement Web