Php : redirection endroit precis d'une page

Fermé
matt2fou Messages postés 5 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 17 novembre 2011 - 16 nov. 2011 à 14:17
 bigbybob - 17 nov. 2011 à 16:39
Bonjour,

je vais essayé d'etre clair, car je n'est pas trouver de réponse a ma question.
j'ai realiser une liste déroulante, et je souhaiterais, en fonction du choix qui m'amène vers une page differente.

ou sinon, si ce n'est pas possible, qu'en fonction du choix on l'envoi sur une seule meme page, mais a des endroits différent. mon code est deja fait, il me manque juste ca. j'aimerai avoir la commande si elle existe. voila merci :)


mon pb: je n'arrive pas a récupéré cette variable pour la mettre là ou on demande la direction de la page.
A voir également:

4 réponses

maka54 Messages postés 698 Date d'inscription mercredi 8 avril 2009 Statut Membre Dernière intervention 4 décembre 2016 80
16 nov. 2011 à 15:26
Sans code, difficile de donner une réponse
0
matt2fou Messages postés 5 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 17 novembre 2011
Modifié par matt2fou le 16/11/2011 à 15:41
pk? c simple pourtant de donner juste le code qui permet de faire ca..

<form action="cible.php" method="post">
<select name="choix">
<option value="choix1">choix 1</option>
<option value="choix2">choix 2</option>
<option value="choix3">choix 3</option>
</select>
<input type="submit" value="lancer">
</form>

en faite, ca m'amenera toujours vers cible.php alors que je voudrais par exmeple si je choisi choix 2 que ca m'amene vers la page choix 2.. mettre la variable choix2 ds form action="choix2.php" .. tu vois? :p
0
Salut, je ne peut pas voir les réponses précédentes (don't know why...)

Bon alors d'après ce que j'ai compris t'as 2 choix, soit tu utilise une fonction Javascript, je crois que c'est "OnChange" mais je me souviens plus trop de comment l'utiliser.

Sinon tu récupère ta variable de ta liste et tu fait ta redirection.

if(isset($_POST['NOM DE TA LISTE'])){
    $nom = $_POST['NOM DE TA LISTE']
    et la tu fait ta redirection vers $nom
}


En espérant avoir aidé
0
matt2fou Messages postés 5 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 17 novembre 2011
16 nov. 2011 à 16:05
oh je vois, je n'est pas encore trop l'habitude..

pour la redirection, c mieux d'utiliser la fonction header() ou une autre?
cela ferai header($nom).... car header permet de rediriger vers l'url, moi y avait une autre fonction comme <a href....> ( html) plus simple.

je vais faire des tests, et si c pas trop te demandé de me dire comment tu ferai cette fonction de redirection.

tu m'a deja un peu aidé :)) merci
0
<meta http-equiv="refresh" content="3; URL=http://www.manouvelleadresse.com">

C'est le plus simple, je crois que dans le content tu met le temps que tu veux que ça prennent avant de lancer la redirection.

C'est ce que tu vois sur les sites genre "nous avons déménagé, vous allez etre redirigé dans X secondes"

Apres, il te faudra certainement mettre des conditions pour déterminer qu'elle adresse envoyer. J'imagine qu'en fonction de la valeur de ta liste l'adresse doit changer.

Donc par exemple :

if($nom =='1'){
<meta http-equiv="refresh" content="3; URL=http://www.manouvelleadresse.com">
}else if($nom == '2'){
<meta http-equiv="refresh" content="3; URL=http://www.manouvelleadresse.com">
}

etc etc

Et tu met les '1', '2', etc dans tes "values" des éléments de ta liste.
0
matt2fou Messages postés 5 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 17 novembre 2011
17 nov. 2011 à 12:00
ahhh ouai, j'ai dérailler hier, j'ai essayé de le faire avec d'autre code et j'y arrivais pas. toujours un endroit ou ca bloque, je vais essayé ca. je vous dit si j'ai reussi apres. ( oui content c le tps d'attente).

mais je sais que quand je choisi ce que je veux dans ma liste déroulante, il faut que j'active un boutton pour qu'il le prenne en compte. car sinon la valeur ne se met pas dans la variable,( c'est le pb que j'ai rencontré hier aussi) je vais essayé la. a moins qu'en utilisant ce code on n'en ai pas besoin.

a tte bigbybob :)
0
matt2fou Messages postés 5 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 17 novembre 2011
17 nov. 2011 à 14:59
bon, je te montre ce que j'ai fais, ca ne fonctionne pas ,'jai une erreur a la ligne 15.. et surement ailleurs mais je ne peux pas voir :

<html>
<head>
<form method="post">
<select name="choix">
<option value="choix1">choix1</option>
<option value="choix2">choix2</option>
<option value="choix3">choix3</option>
</select>
<input type="submit" value="lancer">
</form>
<?php
if (isset($_POST['choix']))
{
$nom = $_POST['choix']
}
if ($nom =='choix1') <== erreur la Oo je comprend pas
{
<meta http-equiv="refresh" content="2;URL=http://localhost/test/choix1">
}
else if($nom =='choix2')
{
<meta http-equiv="refresh" content="2;URL=http://localhost/test/choix2">
}
else if($nom =='choix3')
{
<meta http-equiv="refresh" content="2;URL=http://localhost/test/choix3">
}
echo ' il y a un probleme';

?>
</head>
</html>
0
Il te faut mettre tout tes
if($nom=='choix X')

dans ton
if (isset($_POST['choix'])) 


Sinon ça fait des test sur une variable qui n'existe peut etre pas.

Si tu veux pouvoir déboguer ton site tu peux utiliser le plugin "FireBug" pour firefox.

Il existe aussi un truc pour développer sous Eclipse, ça te permettra de faire du pas a pas et de voir les valeurs attribués a tes variables en temps réel.

Ensuite t'as pas de "body" dans ton code. Normallement ça devrait ressembler a ceci :
<html><header></header><body> //ton code// </body></html>

Y'a de super tutos sur le site du zéro si t'es débutant

Et il te faut mettre tes test (if isset, etc) avant ton formulaire. Mets les au tout début du body de ta page, puis tu met le reste.
0