8768 sujets

Développement web côté serveur, CMS

Bonjour,
Je fais des tests pour un formulaire complexe sans réussir.
Ci-dessous, je vous soumets un exemple de ce qui me pose problème.
1° sur une 1ère page, une personne sélectionne un tarif (normal ou réduit)
2° sur une 2ème page, s'affiche le choix correspondant
Jusque là tout va bien !
3° sur une 3ème page devrait s'afficher un message de confirmation (puis il y aura un traitement qui enverra les données dans une bdd...)
mais avant d'en arriver là, je n'arrive pas à afficher.
J'ai essayé avec $_POST, $_SESSION... rien à faire.
Pourriez-vous, SVP, m'orienter je cale vraiment et vous soumets mon bout de code.
Un grand merci par avance,
Evelyne


1er formulaire estimation.php
<form method="post" action="traitement1.php">
	<p><input type="radio" name="tarif" value="1" checked="checked">tarif normal</p>
	<p><input type="radio" name="tarif" value="2">tarif réduit</p>
	<p><input type="submit" value="Valider" class="bouton_envoyer"></p>    
</form>


2ème formulaire confirmation.php

<? php if (isset($_POST['tarif']) ) ?>
<form method="post" action="traitement.php">
Votre choix d'horaire : 
  <input type="hidden" name="tarif" id="tarif" value="" rows="2" cols="40"><?php if ($_POST['tarif'] == 1) {
	echo "tarif normal";
	} else {
	echo "tarif réduit";
	}
?>
<input type="submit" value="Confirmer" class="bouton_envoyer"/>


Dernier formulaire traitement.php (pour le moment je veux juste afficher le tarif choisi pour vérification car l'insertion en bdd ne se fair pas.
echo $_POST['tarif']";

= rien ne s'affiche !
Modifié par Evelyne31 (26 Jan 2017 - 19:46)
Bonsoir Seven tears,
Je te remercie pour ta réponse. Je soupçonne bien que mon erreur vient de là mais je ne vois pas comment la résoudre. Là je sature, je reprends demain et posterai le résultat pour te tenir informé.
Bonne soirée,
Evelyne31
C'est vraiment tout bête, il suffit d'écrire la valeur reçue dans l'attibut value. Et comme il s'agit d'un nombre, il n'y a a priori aucune précaution à prendre :
<input type="hidden" name="tarif" id="tarif" value="<?php echo $_POST['tarif']; ?>">

Ainsi, quand vous soumettrez ce formulaire, vous récupèrerez bien le tarif initial (1 ou 2) dans $_POST['tarif'].

EDIT : j'avais recopié sans regarder, mais rows="2" cols="40" n'ont rien à faire dans un input de type hidden...
Modifié par Seven tears (26 Jan 2017 - 23:35)
Bonjour Seven tears,
J'ai rectifié mon code selon tes indications et tout fonctionne bien. Je te remercie sincèrement et poste mon code ci-dessous pour d'autres au cas où.
Bon après-midi,
Evelyne31

Le 1er formulaire "estimation.php" ne change pas.

2ème formulaire "confirmation.php" :
<?php 
// on teste la déclaration de la variable
if (isset($_POST['tarif']) ) 
?>

<!DOCTYPE html>
<html>
    <head>	
    	<link rel="stylesheet" href="css.css" />
        <meta charset="utf-8" />
        <title>Titre</title>
    </head>
    <body>
<form method="post" action="traitement.php">
Votre choix de tarif est : </br></br>
<input type="hidden" name="tarif" id="tarif" value="<?php echo $_POST['tarif']; ?>"></br></br>

<?php 
if ($_POST['tarif'] == 1) {
	echo "tarif normal";
	} else {
	echo "tarif réduit";
	}	
?>

<input type="submit" value="Confirmer" class="bouton_envoyer"/>
</body>
</html>


3ème formulaire "traitement.php" :
<?php 
// on teste la déclaration de notre variable
if (isset($_POST['tarif']) ) 
?>

<!DOCTYPE html>
<html>
    <head>   	
    	<link rel="stylesheet" href="css.css" />
        <meta charset="utf-8" />
        <title>Titre</title>
    </head>
<body>
Votre tarif sera  :</br></br>

<?php 
if ($_POST['tarif'] == 1) {
	echo "tarif normal";
	} else {
	echo "tarif réduit";
	}
?>

</body>
</html>