Affichage en fonction d'un menu deroulant ( Merci à vous)
Tatoubest
Messages postés28Date d'inscriptionvendredi 23 décembre 2005StatutMembreDernière intervention17 août 2007
-
28 déc. 2005 à 15:44
Tatoubest
Messages postés28Date d'inscriptionvendredi 23 décembre 2005StatutMembreDernière intervention17 août 2007
-
2 janv. 2006 à 11:11
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
A voir également:
Affichage en fonction d'un menu deroulant ( Merci à vous)
Tatoubest
Messages postés28Date d'inscriptionvendredi 23 décembre 2005StatutMembreDernière intervention17 août 2007 28 déc. 2005 à 20:59
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(^^)
Tatoubest
Messages postés28Date d'inscriptionvendredi 23 décembre 2005StatutMembreDernière intervention17 août 2007 29 déc. 2005 à 08:02
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,
Tatoubest
Messages postés28Date d'inscriptionvendredi 23 décembre 2005StatutMembreDernière intervention17 août 2007 29 déc. 2005 à 12:51
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;
}
}
?>
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 29 déc. 2005 à 12:57
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.
Tatoubest
Messages postés28Date d'inscriptionvendredi 23 décembre 2005StatutMembreDernière intervention17 août 2007 29 déc. 2005 à 17:42
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 !
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 29 déc. 2005 à 18:09
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).
Tatoubest
Messages postés28Date d'inscriptionvendredi 23 décembre 2005StatutMembreDernière intervention17 août 2007 29 déc. 2005 à 19:08
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 !