Récuperer le contenu d'une selection

Résolu/Fermé
Chantal FTW Messages postés 10 Date d'inscription lundi 15 décembre 2008 Statut Membre Dernière intervention 31 juillet 2009 - 21 janv. 2009 à 16:19
Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 - 21 janv. 2009 à 16:35
Bonjour,

Afin d'essayer de me faire comprendre, je vous donne ce que j'ai écrit en exemple
J'ai un menu déroulant et je voudrais récupérer le titre de la catégorie que l'utilisateur a sélectionné dans une variable "nom" :

<form name="jump"><select name="menu" onChange="location=document.jump.menu.options[document.jump.menu.selectedIndex].value;" value="GO"><option value="afficher.php" name="nom">categorie1</option><option value="afficher.php" name="nom">categorie2</option></select></form>

et ensuite lui retourner son choix :

vous avez selectionné : <?php echo($_GET["nom"]) ?>

et puis lui inclure le contenu de la catégorie qu'il a sélectionné dans la page :

<?php include('categories/'.$_GET["nom"].'.html') ?>

en sachant que les fichier sont : categorie1.html et categorie2.html

Ou sont mes erreurs ?
Merci

Chantal

1 réponse

Smoking bird Messages postés 870 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 10 juillet 2011 58
21 janv. 2009 à 16:35
<form name="jump"><select name="menu" onChange="location=document.jump.menu.options[document.jump.menu.selectedIndex].value;" value="GO"><option value="afficher.php" name="nom">categorie1</option><option value="afficher.php" name="nom">categorie2</option></select></form>


un formulaire se déclare ainsi:
<form action='ADRESSE DE LA PAGE QUI TRAITERA LES DONNEES' method='post[ou]get//méthode d'envoi des données utilisées, le plus souvent, post//'>

donner un nom à ton formulaire n'est vraiment utile que si tu utilise du javascript avec, et en particulier des fonctions 'importantes' de javascript.

<select name='menu' onChange='submit()'>//envoi les données à traiter lorsque l'utilisateur sélectionne un truc
<option value='afficher.php'>//pourquoi mettre du include ('variable'.'.html') si l'extension est définie dans les variables transmises?

inutile de mettre un nom à tes options, surtout si c'est le même^^

tu peux écrire la valeur envoyée ainsi:
<?=$_GET['nom']?>
plus rapide à écrire plus facile à relire^^

<?php include('categories/'.$_GET["nom"].'.html') ?>

par mesure de sécurité on ne fait JAMAIS d'include avec variables transmises par l'utilisateur. C'est une grosse faille qu' il faut éviter. Ca doit être ta plus grosse erreur dans ton script, là. Après, si j'ai bien compris ton projet, tu peux le construire différement, et de façon plus sécurisée, avec probablement moins de travail et plus de souplesse. Connais tu le principe des templates?
0