Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 22/05/2011, 14h22   #1
Invité de passage
 
Femme
Technicien réseau
Inscription : mars 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 0
Points : 0
Par défaut conserver la valeur précédente lors de l'envoi du formulaire

bonjour, voici mon code.
j'ai un formulaire comprenant une liste deroulante que j'affiche a partir de la base de données. On selectionne par exemple une valeur puis on envoie le formulaire la valeur va donc se stocker dans la base de données mais la page va s'actualiser automatiquement et la liste deroulante va reprendre la valeur par default qui est --- , alors qu'il faudrait que sa me conserve la derniere valeur selectionner.


le soucis c'est que je dois recuperer la valeur precedente en comparant avec un $_post, ce que je n'arrive pas.

merci de votre aide

Code :
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
 
<?php
 
 
 
$requete='SELECT * FROM table ORDER BY champ ASC'; 
$perso=mysql_query($requete); 
 
if(!$perso) 
{
echo "Lecture impossible";
 
}
else 
{
echo "<SELECT name='champ' size='1' >";
 
while($ligne=mysql_fetch_array($perso,MYSQL_NUM)) 
 
 
foreach($ligne as $valeur)
{
if ($valeur == $valeur_precedente)
echo "<option selected=\"selected\">$valeur</option>";
else
echo "<option> $valeur </option>";
} 
}
echo "</select>";
}
 
//mysql_free_result($perso); 
?>
lamissgirl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2011, 14h47   #2
Membre éclairé
 
Inscription : mai 2008
Messages : 359
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 359
Points : 397
Points : 397
Utilise les sessions pour conserver tes valeurs par défaut. Tu y auras ensuite accès dans tous tes scripts.
Tsilefy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/05/2011, 23h31   #3
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Ce que j'imagine, quand on lance l'action du formulaire, c'est de stocker la valeur sélectionnée du select dans une variable ; comme ça, même si le select est rechargé avec sa valeur par défaut, tu as la dernière valeur sélectionnée.
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 13h38   #4
Invité de passage
 
Femme
Technicien réseau
Inscription : mars 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 0
Points : 0
Laurent SC,

comment compte tu faire pour cela c'est justement ce qu'il faut que je fasse?par rapport a mon code present.
merci
lamissgirl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 13h47   #5
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Supposons que le select ait pour nom "name_select" et que tu utilises la méthode POST ; alors, quand l'utilisateur soumet le formulaire, tu récupères la valeur du select dans $_POST['name_select'], donc tu la copies dans une variable PHP :
Code :
$memo_val_select=$_POST['name_select']
et donc après réinit du select, tu as encore la valeur sélectionnée.
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 19h13   #6
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Si ton formulaire utilise la méthode post cela devrait donner quelque chose comme cela :

Code :
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
<?php
$requete='SELECT * FROM table ORDER BY champ ASC'; 
$perso=mysql_query($requete); 
 
if(!$perso) 
{
echo "Lecture impossible";
 
}
else 
{
echo "<SELECT name='champ' size='1' >";
 
while($ligne=mysql_fetch_array($perso,MYSQL_NUM)) 
 
 
foreach($ligne as $valeur)
{
if ($valeur == $_POST['champ'])
echo "<option selected=\"selected\">$valeur</option>";
else
echo "<option> $valeur </option>";
} 
}
echo "</select>";
}
 
mysql_free_result($perso); 
?>
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 19h49   #7
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Oui en effet ; j'introduisais une variable intermédiaire, mais ça sert à rien...
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 11h46   #8
Membre actif
 
Avatar de hazamor
 
Homme
Développeur Web
Inscription : décembre 2008
Messages : 179
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : décembre 2008
Messages : 179
Points : 199
Points : 199
Envoyer un message via MSN à hazamor
ce quoi l'action de formulaire?

- si c'est la même page alors la plus simple est de faire une comparaison avec la variable post pour sélectionner une valeur (comme l'a indiqué ABCIWEB)

- si le formulaire envoyé à une autre page puis on fait une rederiction vers cette page, alors on ne peut pas utiliser directement la variable post, on doit la stocké dans $_SESSION ou l'envoyer, à chaque page demandée,en url ($_GET)
hazamor est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 24/05/2011, 13h17   #9
Invité de passage
 
Femme
Technicien réseau
Inscription : mars 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 0
Points : 0
c'est exactement sa hazamor ,

le formulaire est envoyé à une autre page puis on fait une rederiction vers cette page, alors on ne peut pas utiliser directement la variable post, on doit la stocké dans $_SESSION ou l'envoyer, à chaque page demandée,en url ($_GET) .

A partir de la j'utilise les variables de sessions, mais aucun résultat,
car le code que j'ai mis dans mon premier poste appartient a l'index , alors qu'une fois le formulaire validé les valeurs vont dans une autre page afin d'etre stocker dans la base de données , a savoir qu'il faut que je recupère cette valeur je pense donc par variable de session.
De plus que j'utilise déjà les variables de sessions pour la partie administration avec mot de passe .

j'ai fait sa comme sa pour le moment:

page index.php:

Code :
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
<form action="autrepage.php" method="post">
 
 
             <?php
 
 
 
 
 
 
  $requete='SELECT * FROM  table ORDER BY champ ASC';
 
 
$perso=mysql_query($requete);	
 
if(!$perso) 
{
    echo "Lecture impossible";
 
}
else  
{
	     echo "<SELECT name='champ' title='choisir opérateur' size='1' >";
 
   while($ligne=mysql_fetch_array($perso,MYSQL_NUM))  
    {
 
 
    foreach($ligne as $valeur)
    {
           if( isset($_POST['champ']) )
	            $valeur_precedente=$_POST['champ'];
                         $_SESSION['champ'] = $valeur_precedente ;
 
 
		if ($valeur == $valeur_precedente)
 
     echo "<option selected=\"selected\">$valeur_precedente</option>";
   else
     echo "<option>$valeur</option>";
 
    }
 
    }
        echo "</select>";
 
}
 
//mysql_free_result($perso); //libere la variable $perso
 ?>
et donc dans l'autre page ou la données est envoyé j'ai mis sa :

Code :
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
...
...
...
...
...
$valeur_precedente = $_SESSION['champ'];
 
header('Location: index.php');//permet de faire la redirection instantanée
?>
lamissgirl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 14h41   #10
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
As-tu bien mis session_start() dans index.php ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 16h07   #11
Membre Expert
 
Inscription : septembre 2010
Messages : 1 242
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 1 242
Points : 1 564
Points : 1 564
Il est un peu tout à l'envers ton code...

dans "SELECT * FROM" table peux-tu m'indiquer quels sont les champs de table ? ça m'aiderait à y voir plus clair.

Par ailleurs comme tu envoies les données du post dans une autre page, le "if( isset($_POST['champ']) )" retournera toujours faux...
__________________
- Réalisations
- Interface graphique : génération en javascript d'objets défilants, texte et/ou images, mode horizontal ou vertical.
ABCIWEB est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 17h30   #12
Invité de passage
 
Femme
Technicien réseau
Inscription : mars 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 0
Points : 0
Merci a tous j'ai réussi a resolver le problème
lamissgirl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 17h56   #13
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
Citation:
Merci a tous j'ai réussi a resolver le problème
Est-ce que la solution consistait bien à rajouter un session_start() ? De toute façon, c'est utile de dire comment tu as résolu le problème.
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 20h38   #14
Invité de passage
 
Femme
Technicien réseau
Inscription : mars 2011
Messages : 9
Détails du profil
Informations personnelles :
Sexe : Femme
Localisation : France

Informations professionnelles :
Activité : Technicien réseau
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 9
Points : 0
Points : 0
Laurent B,
comme je le disait juste au dessus le session_start(); était déjà present donc non ce n'était pas.

j'ai donc utilisé les sessions afin de deplacer ma variable d'une page a l'autre.
lamissgirl 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 14h55.


 
 
 
 
Partenaires

Hébergement Web