0
votes

Envoyer les données du formulaire PHP vers une autre page

Je viens d'écrire ce code dans lequel j'ai une forme. Vous devez écrire votre nom, prénom et pays. Vous devez également choisir votre couleur préférée. Après cela, vous appuyez sur un bouton d'envoi pour pouvoir voir les données par la suite. J'utilise la méthode GET avec 1 page, mais je dois en utiliser une deuxième avec la méthode POST pour que chaque écho soit sur cette deuxième page. Comment pourrais-je faire ça? Mon code est:

<!DOCTYPE html>
<html>
 <head>
 <meta charset="UTF-8">
 <title>Form</title>

 <link rel="stylesheet" type="text/css" href="form.css">
 </head>
 <body>
 <section>
 <?php
 if (isset($_GET["name"])){
     $name = $_GET["name"];
     if ($name != ""){
         $surname = $_GET["surname"];
         $country = $_GET["country"];
         $colour = $_GET["colour"];

         echo "<p>";
         echo "<h2>Data</h2>";
         echo $name . " " . $surname . "</br />";
         echo $country . "<br />";
         echo $colour;
         echo "</p>";
     }else 
         echo "<strong>Complete the blank spaces</strong>";
 }else{
 ?>
 <h1>Form</h1>
 <form class="elegant" method="GET" action="?">
 <fieldset>
 <legend>Favourite colour</legend>

 <div>
 <label for="nombre">Name</label>
 <input type="text" placeholder="Name" name="name"
id="name" />
 </div>
 <div>
 <label for="surname">Surname</label>
 <input type="text" placeholder="Surname" name="surname"
id="surname" size="50" />
 </div>
 <div>
 <label for="country">Country</label>
 <input type="text" placeholder="Country" name="country" id="country"
size="10" maxlength="9" />
 </div>
 <div>
<select name="colour" id="colour">
<option value="yellow" <?php if ($colour == "yellow" ) echo "selected"  ?> >yellow</option>
<option value="red" <?php if ($colour == "red" ) echo "selected"  ?> >red</option>
 </div>

 <input class="btn" type="submit" value="Save" />
 </fieldset>
 </form>
 <?php
 }
 ?>

 </section>
 </body>
</html>

Je sais que je dois utiliser un lien vers cette deuxième page, mais c'est tout ce que je sais. Merci d'avance!


0 commentaires

3 Réponses :


0
votes

Dans la balise form, vous pouvez spécifier où le formulaire est soumis à:

<form class="elegant" method="GET" action="YOUR_PAGE_URL_HERE">


1 commentaires

C'est vrai! Mais il y a plus de choses que je ne sais toujours pas :(



0
votes

Sur cette deuxième page, vous obtenez les valeurs via la variable $ _GET comme

<?php
echo $_GET['name'].' '.$_GET['surname'];


1 commentaires

C'est vrai! Mais il y a plus de choses que je ne sais toujours pas, cela ne fonctionnera pas encore :(



0
votes

Si je comprends bien, le code que vous montrez est pour la page 1 où l'utilisateur peut:

  1. Données d'entrée si les données n'existent pas;
  2. Affichez les données et confirmez-les si elles existent. À ce stade, stockez les données dans SESSION et envoyez l'utilisateur vers une autre page.

Pour ce faire, n'oubliez pas que vous devez ajouter la commande session_start () juste au début de chaque page dans laquelle vous pourrez manipuler les données de session.

<?php
session_start();
...
// Echo session variables that were set on previous page
echo "Name is " . $_SESSION["name"] . ".<br>";
echo "Surname is " . $_SESSION["surname"] . ".";
// etc.
?>


5 commentaires

Oui, vous avez bien compris, c'est ce que je dois faire! Mais il y a quelque chose que je ne comprends toujours pas, ça ne marche pas encore. J'ai oublié de dire que je devrais utiliser les sessions parce que mon professeur me l'a dit, mais je ne comprends pas comment puisqu'il ne l'a pas expliqué. Quoi qu'il en soit, le code que vous avez écrit ne semble pas fonctionner pour moi :(


Cela fonctionne bien pour moi ... Veuillez noter qu'il y avait une faute de frappe dans le code d'origine: un point-virgule manquant après la ligne echo "" . Peut-être que vous l'avez vérifié avant ma modification. Concernant les sessions: c'est un autre monde, il faut donc être plus précis.


Oh, tu as raison, ça m'a manqué! Et oui, j'ai oublié de dire que je devais utiliser des sessions, désolé! Ce que je dois faire, c'est la même chose que j'ai dit sur mon premier post mais en utilisant des sessions: je dois stocker les données que le formulaire reçoit en sessions et les envoyer ensuite à la deuxième page via des sessions. Savez-vous comment dois-je faire alors? Je suis vraiment perdu ici :(


J'ai modifié ma réponse en ajoutant la gestion de session. Pensez à modifier votre question pour le bénéfice des utilisateurs de la communauté et pour plus de clarté. Notez que ces arguments méritent au moins une lecture du manuel PHP si vous souhaitez les gérer correctement. Veuillez voter pour ma réponse si elle vous satisfait enfin. ;-)


C'est une très bonne réponse! Merci! Je vote pour le moment: D