Probleme avec une liste déroulante

Signaler
Messages postés
140
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2010
-
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
-
voici mon code:
<?php
if (isset($_POST['select1'])!=NULL)
{$optionselect1 = @$_POST['select1'];
if ($optionselect1 =='accueil')
{ $varaction='nouvo design.php' ;}
else if ($optionselect1 =='Buffle_Team]')
{ $varaction='counter.php';}
else if ($optionselect1 =='forum')
{ $varaction='http://informaticman.free.fr/upload/';}
else if ($optionselect1 =='partenaires')
{ $varaction='partenaires.php';}
else if ($optionselect1 =='musiques')
{ $varaction='musiques.php';}
header ("Location:".$varaction);
}
?>

<form name="form1" method="POST" action="nouvo%20design">
<select name="select1" onChange="this.form.submit()">
<option selected>Aller à...</option>
<option>-------</option>
<option>accueil</option>
<option>Buffle_Team</option>
<option>forum</option>
<option>partenaires</option>
<option>musiques</option>
</select>
</form>

le petit soucis, c est que chaque option me renvois sur la meme page: nouvo design
je voudrais que lorsqu'on l'on choisis buffle_team, cela renvoi sur counter.php et non comme la ça me renvoi sur nouvo design
comment faire?
merci d'avance

17 réponses

Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
je sais pas si c'est faisable mais un truc simple peut peut etre fonctionner...
a la place de
<form name="form1" method="POST" action="nouvo%20design">
tu met:
echo "<form name="form1" method="POST" action=$_POST['select1']>";

ou sinon regardes la fonction header(....);
ou alors tu fais comme je fais pour ce genre de chose a savoir faire des fonctions pour chaque page ...
Voila j espere pas trop avoir ecris de betises ^^
-------------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Salut,

remplace <?php
if (isset($_POST['select1'])!=NULL)
{$optionselect1 = @$_POST['select1'];

par

<?php
if (isset($_POST['select1']))
{$optionselect1 = $_POST['select1'];

ensuite le action="nouvo%20design"

c'est pas bon de nommer tes pages avec des espaces, et n'oublie pas l'extension ;-) (sauf si tu n'en as pas mis volontairement m'enfin...)

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
140
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2010

merci mais cela ne change rien
quand je choisis buffle_team dans la liste, cela me dirige sur la page nouvo design.php et non sur la page counter.php
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
sur la page "nouveau_design.php" tu dois avoir ça :

<?php
if (isset($_POST['select1'])!=NULL)
{$optionselect1 = @$_POST['select1'];
if ($optionselect1 =='accueil')
{ $varaction='nouvo design.php' ;}
else if ($optionselect1 =='Buffle_Team]')
{ $varaction='counter.php';}
else if ($optionselect1 =='forum')
{ $varaction='http://informaticman.free.fr/upload/';}
else if ($optionselect1 =='partenaires')
{ $varaction='partenaires.php';}
else if ($optionselect1 =='musiques')
{ $varaction='musiques.php';}
header ("Location:".$varaction);
}
?>

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
341
Date d'inscription
mercredi 17 juillet 2002
Statut
Membre
Dernière intervention
14 juillet 2011
14
Comme dit précédemment, les noms de fichiers avec espace = pas bon.

D'autre part, sans attribut "value" dans les éléments "option", il n'y a rien à récupérer.
Messages postés
140
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2010

ça marche avec toutes les pages sauf pour counter.php
quand je choisis Buffle_Team, cela me renvois sur index.php et non sur counter.php
autrement aucun probleme pour toutes les autres pages
Messages postés
9433
Date d'inscription
mardi 9 octobre 2001
Statut
Membre
Dernière intervention
13 avril 2007
9
Ah oui tiens il manque les value="machin"

<hr size="2" width="100%"><li>Entraide, dépannage et vulgarisation informatique : Mon site de vulgarisation informatique</li><li>Codes-php.net</li>
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
else if ($optionselect1 =='Buffle_Team]')



il n'y aurait pas un ] de trop ??
Messages postés
140
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2010

si mais je viens de l'enlever avant que vous me le dites et il n'y a rien qui se passe malgres tout
niveau value faut que je mette quoi? car je comprends pas du tout le principe de la liste déroulante :(
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
<select name= "select1" onChange="this.form.submit()">

<option selected>Aller à...</option>

<option>-------</option>

<option value='nouvo_desing.php' >accueil</option>

<option value ='counter.php'>Buffle_Team</option>

...

</select>



la value de la variable nommée select1 (qui deviendra $_POST['select1'])

est chargée par rapport aux différentes values des options (qui manquent)



quand tu sélectionnes , c'est la value de l'option qui est
chargée dans la variable, d'ailleurs tu peux mettre directement l'url
d'une page



d'autre part le nom select1 n'est pas très approprié pour une variable

name='lien' ou name='page' serait plus clair pour toi
Messages postés
140
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2010

ok merci
mais sans les values il n'y avait que le page counter.php qui ne s exécutait pas autrement toutes les autres pages fonctionnaient cela viens de quoi?
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
a part le ] en trop dans 'Buffle_Team]', je ne vois pas...
Messages postés
140
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2010

en rajoutant les valeurs c est encore pire ça me renvois sur l'index pour tous les choix
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
la il faudrait voir ce qu'est devenu le code !
Messages postés
140
Date d'inscription
samedi 9 juillet 2005
Statut
Membre
Dernière intervention
18 décembre 2010

le code:
<?php
if (isset($_POST['select1']))
{$optionselect1 = $_POST['select1'];
if ($optionselect1 =='accueil')
{ $varaction='nouvo design.php' ;}
else if ($optionselect1 =='Buffle_Team')
{ $varaction='counter.php';}
else if ($optionselect1 =='forum')
{ $varaction='http://informaticman.free.fr/upload/';}
else if ($optionselect1 =='partenaires')
{ $varaction='partenaires.php';}
else if ($optionselect1 =='musiques')
{ $varaction='musiques.php';}
header ("Location:".$varaction);
}
?>

<form name="form1" method="POST" action="nouvo%20design.php">
<select name="select1" onChange="this.form.submit()">
<option selected>Aller à...</option>
<option>-------</option>
<option>accueil</option>
<option>Buffle_Team</option>
<option>forum</option>
<option>partenaires</option>
<option>musiques</option>
</select>
</form>

voilà
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
il manque } ici



if (isset($_POST['select1']))

{$optionselect1 = $_POST['select1'];}
Messages postés
1216
Date d'inscription
mardi 20 décembre 2005
Statut
Membre
Dernière intervention
18 octobre 2012
5
non j'avais mal lu