Formulaire PHP retour donnée URL

Fermé
FIZI - 7 janv. 2008 à 17:10
 FIZI - 7 janv. 2008 à 18:47
Bonjour,

Je cherche à créer un formulaire à liste déroulante en php et à faire un retour de la donnée choisie dans la liste dans l'url afin d'aller à la page choisie...

Pourriez vous m'aider?

Merci...

10 réponses

bibi675 Messages postés 387 Date d'inscription mardi 1 janvier 2008 Statut Membre Dernière intervention 30 décembre 2008 20
7 janv. 2008 à 17:13
Salut,
Je pense que je pourrait t'aider mais là j'ai pas compris grand-chose, si tu pouvais ré-expliquer, stp...

@++
0
Bonjour,

Merci de ta réponse si rapide. Alors je voudrais avoir mon formulaire à liste déroulante : dans la liste par exemple mettons les valeurs 1 et 2. je voudrais que suivant la valeur choisie, l'utilisateur clique sur le bouton et soit redirigé vers par exemple 2.php

Est-ce un peu plus clair?

Merci encore.
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
7 janv. 2008 à 17:18
salut,

si tu utilises la méthode 'GET' pour le <form>, tu chargera la page cible avec les valeurs du formulaires comme paramètres dans l'url.
<form action="script.php" method="get">
	<select name="choix">
		<option value="1">Choix 1</option>
		<option value="2">Choix 2</option>
		<option value="3">Choix 3</option>
	</select>
</form>

si tu choisis le deuxième, ton navigateur atterrira sur la page 'script.php?choix=2'
et dans ton script tu pourra récupérer la valeur dans la variable '$_GET'
$var = $_GET['choix'] //$var vaut '2'
0
Bonsoir,

En fait le formulaire, je suis tout à fait d'accord, c'est ce que je faisais en gros en rajoutant un bouton, mais pour la variable, je n'ai pas très bien compris comment l'insérer dans mon script pour que cela retourne le résultat voulu dans la même page...

Merci.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
7 janv. 2008 à 17:38
on continue sur le même exemple, pour tester dans 'script.php' tu codes :
<html>
	<head></head>
	<body>
<?php
if( isset( $_GET['choix'] )
{
	echo( $_GET['choix'] );
}
?>
	</body>
</html>

0
Bonsoir,

Le truc c'est que je ne veux pas avoir la valeur affichée, mais je voudrais par exemple que choix 2 me renvoi en cliquant sur OK sur IP/choix2.php

Merci... (Actuellement ma valeur ne fait que s'afficher)
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
7 janv. 2008 à 18:18
ah !
c'est pas pareil !

donc il faut utiliser 'POST' pour ne pas que ça apparaisse dans la barre d'adresse.
et pour aller à la page voulue le plus simple est d'utiliser 'header()'.

dans le value de <option> tu mets la valeur de la page vers laquelle tu veux aller et dans ton script :
<?php
// si une page choisie
if( isset( $_POST['choix'] ) )
{
header( 'Location:http://www.monsite.com/pages/'.$_POST['choix'] );
}
// sinon, l'accueil
else
{
header( 'Location:http://www.monsite.com/index.php' );
}
?>
le code doit être placé en tout premier dans ton code, même pas de caractère d'espace avant !
0
Bonsoir,

Encore merci pour toutes ces réposes, cela resemble plus à ce que je veux faire.... Donc du coup que dois je mettre dans mon action?

Merci encore...
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 921
7 janv. 2008 à 18:36
tout dépends de comment tu t'organises.

à mon avis le plus propre est de laisser les nombres et dans ton script tu construis un tableau avec le nom des fichiers affichables.

pour afficher tu transtypes le retour du 'POST' en entier (par sécurité) et tu demandes la pages correspondante dans le tableau.
tu pourrais aussi tester pour savoir si le nombre est inférieur à la taille du tableau ou le mettre dans un sandwich 'Try...Catch' pour gérer une éventuelle erreur proprement.
<?php
$pages = array( 'page1.php',  'page2.php', 'page3.php' );
// si une page choisie
if( isset( $_POST['choix'] ) )
{
$choix = (int) $_POST['choix'];
header( 'Location:http://www.monsite.com/pages/'.$pages[ $choix ] );
}
// sinon, l'accueil
else
{
header( 'Location:http://www.monsite.com/index.php' );
}
?>
0
Bonsoir,

Ok pour tout ceci, je pensais aussi laisser le nombres...

Mais ce que je voulais en fait du coup surtout, c'est voir comment créer mon formulaire pour que le tout soit pris en compte.

Merci...
0