Affichage en fonction d'un menu deroulant ( Merci à vous)

Signaler
Messages postés
28
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
17 août 2007
-
Messages postés
28
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
17 août 2007
-
Bonjour,
je fais appel à vous car j'ai un petit souci.
Je cherche à partir d'un menu déroulant tres basique :
<select name="liste">
<option value="Film1">La verité si je ment
<option value="Film2">Kill bill
<option value="Film3">Oliver twist
<option value="Film4">Et si c'etait vrai...
</select>


determiner un affichage en fonction du film choisit (simple click sur le menu pour valider)
pour y afficher par exemple un resumer.
l'affichage s'effectura juste en dessous du menu déroulant.
Les recherches et mes réponses que j'ai trouvé me pousse a me servir de javascript (et de la fonction OnChange()) mais, je suis un vrai debutant !
Merci pour votre aide !

Tatoubest

14 réponses

Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Hello,

tes recherches te poussent bien, mais pas assez loin apparemment. Pousse-donc jusque là : www.javascriptfr.com
Messages postés
15137
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
22 septembre 2021
99
Un post à peu près similaire: http://www.phpcs.com/forum.v2.aspx?ID=626268

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
28
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
17 août 2007

Bonsoir,
Merci de vos reponse,
un camarade de classe ma envoyer une solution qui fonctionne,
Je vous en fait part :
//code correspondant au menu.
Ajout d'un champs (Preciser le type):
<form NAME="menu">
<select NAME="choix" onChange="change_site();">
<option>
Faites votre choix
</option>
<option>
La verité si je ment
</option>
<option>
Kill bill
</option>
<option>
Oliver twist
</option>
<option>
Et si c'etait vrai...
</option>
</select>
</form>


//voici la fonction à utiliser :

function selection() {

var valeur=document.menu.choix.selectedIndex;
var page="form.php?val="+valeur;
window.location=page;
}

//Ainsi que la gestion de l'affichage
<?php
if(isset($_GET['val'])){
switch ($_GET['val']) {
case 0:
echo "Aucune saisie";
break;
case 1:
echo "Menu déroulant";
break;
case 2:
echo "Bouton radio";
break;
case 3:
echo "Bouton checkbox";
break;
case 4:
echo "Zone de saisie";
break;
case 5:
echo "Zone de saisie multiligne";
break;
}
}
?>

Si quelqu'un savait comment adapté le script php (gestion de l'affichage avec la methode POST ca m'arrangerais).
Cette methode fonctionne tres bien !Merci a toi camarade(^^)
Messages postés
15137
Date d'inscription
lundi 11 juillet 2005
Statut
Modérateur
Dernière intervention
22 septembre 2021
99
Il faut rajouter l'attribut method au formulaire:

<form method='post' ...>

Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
Messages postés
28
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
17 août 2007

Salut buno,
J'ai essayé ce que tu m a dit mais j'ai toujours les parametres qui se placent dans l url, ce que je ne souhaite pas. As tu une idée pour remédier à ce probleme?
Encore merci de ta reponse,
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Pas avec POST, impossible.

<form method="post" action="tapage.php">
..
</form>

et tu récupères les valeurs dans $_POST['NomduChamp']
Messages postés
28
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
17 août 2007

bonjour malalam,

Pourriez vous etre un peu plus explicite car je ne vois pas comment a partir de $_POST['NomduChamp'], je peux retirer les infos dans l'url.
la modification ne devrait pas plutot se faire dans :
<?php
if(isset($_GET['val'])){
switch ($_GET['val']) {
case 0:
echo "Aucune saisie";
break;
case 1:
echo "Menu déroulant";
break;
case 2:
echo "Bouton radio";
break;
case 3:
echo "Bouton checkbox";
break;
case 4:
echo "Zone de saisie";
break;
case 5:
echo "Zone de saisie multiligne";
break;
}
}
?>

Merci de votre aide,
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Ce que je dis, c'est que si ton formulaire utilise la méthode post, tu ne peux pas voir apparaître les valeurs dans l'url, c'est impossible.
Et que pour récupérer des valeurs passées en post à une page, on doit utiliser le tableau $_POST et non pas $_GET comme tu le fais ici.
Messages postés
28
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
17 août 2007

Merci de votre reponse,
j'ai refais mon fichier en mettant que des POST.
je vous joint le code :
<html>
<head>
<title>Form_post.php</title>
</head>


form_post.php



Vos films
déroulant




<script>
// fonction
function selection() {
//alert(document.menu.choix.selectedIndex);
var valeur=document.menu.choix.selectedIndex;
var page="form_post.php?val="+valeur;
window.location=page;
}
</script>
<form method='POST' NAME="menu">
<select NAME="choix" onChange="selection();">
<option>
Faites votre choix
</option>
<option>
La verité si je ment
</option>
<option>
Oliver Twist
</option>
<option>
Kill Bill
</option>
<option>
Et si c'etait vrai...
</option>
<option>
Le seigneur des anneaux
</option>
</select>
</form>





<form method="POST" action="form_post.php">
Aimez vous ce film?



<hr>


<!--Affichage de la zone comportant les caracteristiques du film-->


<?php
if(isset($_POST['val'])){
switch ($_POST['val']) {
case 0:
echo "Aucune saisie";
break;
case 1:
echo "Film1";
break;
case 2:
echo "Film2";
break;
case 3:
echo "Film3";
break;
case 4:
echo "Film4";
break;
case 5:
echo "Film5";
break;
}
}
?>

Cependant, je n'ai plus l'affichage (echo "film 1" par exemple).
Deplus, si je valide comme choix le film 2, j'ai mon url qui prend comme adresse
http://localhost/projet/form_post.php?val=1
Ce qui me gene c'est : ?val=1.
J'ai bien vu que ma fonction "seletion" ajoute ce parametre mais meme si je le retire, ca ne fonctionne toujours pas.
Je sais bien que la methode POST a l avantage de ne pas divulger les infos des formulaire dans l'url mais là, je comprend pas...
Encore merci de votre soutien !
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Evidemment que tu les as dans ton url, c'est ta fonction javascript qui fait ça.
D'ailleurs elkle ne sert à rien...

mets des valeurs à tes options : <option value="0">...</option>, <option value="1">...</option> etc...en fonction de tes switch.
Puis sur l'évènement onchange, fais ceci :
onchange="this.form.submit();"
Ensuite, tu fais ton switch non pas sur $_POST['val'] mais sur $_POST['choix'] (le nom de ton select).
Messages postés
2350
Date d'inscription
mercredi 13 octobre 2004
Statut
Membre
Dernière intervention
18 avril 2015
3
" var page="form_post.php?val="+valeur;"

Bah ui, pourtant c'est simple à voir :p
Messages postés
28
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
17 août 2007

Merci beaucoup malalam !
Ca fonctionne impec !
Une derniere precision, lorsque je valide, la question : Aimez vous ce film?
je fais apparaitre la reponse en dessous , mais apres avoir validé le choix du film( echo "film 1" ), l'affichage est ecrasé.
comment remedier a ce probleme ? est ce au niveau de :
window.location=page;

Encore un grand merci pour la qualité de vos reponses !
Messages postés
10839
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
24
Tu es pénible avec ton javascript ;-)

Montre ton nouveau code...on va voir ce qu'on peut faire (et éradiquer tout js...)
Messages postés
28
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
17 août 2007

en fait c'est bon j'avais trouvé....
desoler du derangement...
Et encore merci de m'avoir aidé !