[RESOLU] Page cible d'un formulaire selon réponse

Eléphant du PHP | 91 Messages

12 juin 2020, 17:35

Bonjour,
Je souhaite dans mon formulaire, lorsqu'on soumet celui-ci, si la personne répond "Féminin", au moment ça envoie à page 2, si la personne répond "Masculin" le formulaire sera envoyé sur la page 3, comment peut-on faire ?
Merci de m'apporter vos suggestions.

<form action="" method="post" enctype="multipart/form-data">
<label><input name="ch3" type="radio" required id="ch3_1" value="Féminin"> Féminin</label>
<label><input name="ch3" type="radio" required id="ch3_2" value="Masculin"> Masculin</label><br />
<input type="submit" class="button" value="Suivant"/>
</form>

Mammouth du PHP | 1967 Messages

15 juin 2020, 08:11

soit en php avec header()
soit en javascript en modifiant l'attribut action en fonction de la réponse
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Avatar du membre
Mammouth du PHP | 1564 Messages

18 juin 2020, 23:39

[hors sujet] Je me doute bien que tu as du couper le formulaire pour l'afficher ici mais si c'est pas le cas, enctype="multipart/form-data" ne sert à rien pour les champs de ton formulaire tel qu'il est présenté ici.

Une solution serait de faire deux form avec deux action différentes.

Eléphant du PHP | 91 Messages

21 juin 2020, 14:51

Merci pour votre aide

Eléphant du PHP | 65 Messages

27 juil. 2020, 23:33

Quelque chose comme ça par exemple :

$url = 'test2.php';
if (isset($_POST)) {
  if ($_POST['ch3'] == 'Féminin') 
  {
  header('Location: '.$url);
  }
}

Avatar du membre
Mammouth du PHP | 1564 Messages

28 juil. 2020, 09:19

isset($_POST)
OK, mais:
isset($_POST['ch3'])
n'est pas vérifié, tu risque d'avoir la variable non déclarée ;)

Ma solution (mais je doute que sans les autres champs c'est ce que tu veuille...):

Code : Tout sélectionner

<form action="page2.php" method="post"> <input type="submit" value="Féminin"> </form> <form action="page3.php" method="post"> <input type="submit" value="Masculin"> </form>

En incluant les autres champs, la solution donné précédemment correspond bien à tes attentes:
if(isset($_POST['ch3'])){
	//traitement des autres champs, vérifications...
	//

	if($_POST['ch3'] == 'Féminin'){
		//redirection vers page2
		header("Location: page2.php");
	} elseif($_POST['ch3'] == 'Masculin'){
		//redirection vers page2
		header("Location: page3.php");
	}
}
est de passer par Javascript

Mammouth du PHP | 881 Messages

29 juil. 2020, 23:25

Ou encore, ton formulaire est envoyé à une page de traitement qui - elle - appelle l'un ou l'autre formulaire selon la réponse à la question H / F.

Page du formulaire A -> page de traitement
Dans la page de traitement
if ( $reponse == 'F') { 
include("sousRep/LaPageDesFemmes.php");
} else {
include("sousRep/LaPageDesHommes.php");
}

Soyez artisans de paix

Eléphant du PHP | 91 Messages

24 août 2020, 11:58

Merci pour votre aide, j'ai trouvé ceci qui fonctionne :
<input type="radio" name="sexe" value="page4" id="sexe_1" required onclick="this.form.action=this.value"> Femme
<input type="radio" name="sexe" value="page2" id="sexe_2" required onclick="this.form.action=this.value"> Homme<br />

Encore merci à vous

Avatar du membre
Mammouth du PHP | 1564 Messages

04 déc. 2020, 01:34

Cool! tu peux passer le sujet en Résolu ;)