PHP sauvegarder un formulaire au rechargement de la page

Fermé
Balkaaa - 16 nov. 2022 à 11:51
yg_be Messages postés 23364 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 décembre 2024 - 21 nov. 2022 à 10:58

Bonjour,

Je ne savais pas réellement quoi mettre en titre mais le problème est plutôt simple je vous assure.

Je suis sur une appli en full PHP, html et un peu de JS.

Je cherche à ne pas recharger la page de mon formulaire lorsqu'il y'a une erreur.

Exemple : mon utilisateur ne renseigne pas tous les champs obligatoire et clique sur "envoyer le formulaire". Une erreur apparaît "Veuillez renseigner les champs obligatoires". Mais tous les champs du formulaire qu'il avait renseigné sont effacé. je voudrais que les valeurs renseignés restent même après avoir recharger la page (à l'envoi)

Pour ce qui ai de ma méthode d'envoi en bdd du formulaire :

if (!isset($MesChampsObligatoire)) {

    MessageErreur("Veuillez renseigner les champs obligatoires");
    header("location: " . URL . "accueil/MonFormulaire", "X-XSS-Protection: 1; mode=block");
    
}
else {
    $sql = "INSERT INTO ....";
    $query = $bdd->prepare($sql);
    $query->bindValue(...);
    ...
    $query->execute();
}


Le header renvoi sur mon formulaire.

Comment sauvegarder les infos renseigné à l'envoi du formulaire ?

Si vous avez des idées j'suis preneur,

Cdt

A voir également:

1 réponse

jordane45 Messages postés 38326 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 2 décembre 2024 4 712
16 nov. 2022 à 12:18

Bonjour,

Soit tu places le code de traitement de ton formulaire dans le même fichier que ton formulaire. ( et tu rediriges vers la page de succès si l'insertion en bdd a fonctionné )

Ainsi, tu peux réafficher les variables transmises en $_POST directement dans ton formulaire

Soit, tu veux conserver ton fonctionnement actuel.. et dans ce cas tu stockes les données dans les variables de SESSION pour pouvoir les retrouver dans ton formulaire après la redirection.


0

Bonjour, merci pour ta réponse 

Je voudrais garder mon fonctionnement actuel dans lequel j'ai une partie view avec mon formulaire et une partie controller avec les fonctions qui permettent d'alimenter, traiter ce formulaire.

Je me demande ou je dois instancier mes variables de session et comment, quelque chose comme ça $_SESSION($_POST[$monChamp]); ?

Cdt, 

Balkaa

0
yg_be Messages postés 23364 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 3 décembre 2024 1 556 > Balkaaa
21 nov. 2022 à 10:58

Pour sauver les valeurs reçues via le formulaire:

$_SESSION('monChamp') = $_POST['monChamp');

ensuite, tu utilises $_SESSION('monChamp') au moment d'envoyer le formulaire.

0