Bonjour,

Voila je rencontre un petit problème avec mon code.

Ce que je fais

Lorsque je valide un formulaire avec des champs de saisie vide, j'aimerais que le titre de la page (au niveau de l'onglet) affiche un message d'erreur du type "Erreur sur le formulaire".
J'ai essayé ce type de code en remplaçant la variable $title que j'avais utilisé en haut du code pour définir le titre de la page.

<main role="main" id="main" class="main">
    <h2 class="aligncenter h2 h2_contact">Contact</h2>
    <?php
    if (!empty($_POST)) {
            //var_dump($_POST);
            $erreurs = [];
            // Vérification du champ nom et prénom, email
            $nom = trim(strip_tags($_POST['nom'] ) );
            if (empty($_POST['nom'])) { // on vérifie que le champ nom ne soit pas vide.
                echo '<ul class="error_list"><li class="error_form">Le nom ne doit pas être vide</li>';

                $title = "erreur sur le formulaire";

            }

            $prenom = trim(strip_tags($_POST['prenom'] ) );
            if (empty($_POST['prenom'])) { // on vérifie que le champ nom ne soit pas vide.
                echo '<li class="error_form">Le prénom ne doit pas être vide</li>';
                $title = "erreur sur le formulaire";
            }

            $email = trim(strip_tags($_POST['email'] ) );
            if (empty($_POST['email'])) { // on vérifie que le champ nom ne soit pas vide.
                echo "<li class='error_form'>L'email ne doit pas être vide</li>";
                $title = "erreur sur le formulaire";
            }

                // Vérification de la validité de l'email. 
                if (!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) && !empty($_POST['email'])) {
                    echo "<li class='error_form'>L email n est pas valide</li>";
                }

                $demandes = trim(strip_tags($_POST['demandes'] ) );
                if (empty($_POST['demandes'])) { // on vérifie que le champ nom ne soit pas vide.
                echo "<li class='error_form'>Le message ne doit pas être vide</li></ul>";
                $title = "erreur sur le formulaire";
                }

                if (!empty($erreurs)) {
                 echo 'Le formulaire a été envoyé avec succès';
                    } 
                }

    ?>

    <form method="POST" class="needs-validation aligncenter" id="needs-validation">
        <?php echo (isset($erreurs) && empty($erreurs)) ? '' : null ?>

        <label for="name" class="bl">Nom (obligatoire)&nbsp;:</label>
        <input type="text" name="nom" id="name" class="input_contact" aria-required="true"/> 

        <label for="firstname" class="bl">Prénom (obligatoire)&nbsp;:</label>
        <input type="text" name="prenom" id="firstname" class="input_contact" aria-required="true"/>

        <label for="email" class="bl">Adresse <span lang="en">email</span> (obligatoire)&nbsp;:</label>
        <input type="email" name="email" id="email" class="input_contact" aria-required="true"/>

        <label for="answer" class="bl">Demandes / Suggestions (obligatoire)&nbsp;:</label>
        <textarea name="demandes" id="answer" rows="10" cols="50" class="textarea_contact" aria-required="true"></textarea>

        <fieldset role="radiogroup" aria-labelledby="group_radio" id="list_radio">
            <legend id="group_radio" class="center i_am">Vous êtes&nbsp;: </legend>

            <label for="person" class="bl">
                <input type="radio" name="you_are" id="person" class="input_radio" value="Une_personne_autiste" checked />
                <span class="inbl w250p">Une personne autiste </span>
            </label>

            <label for="parent" class="bl">
                <input type="radio" name="you_are" id="parent" class="input_radio" value="parent" />
                <span class="inbl w250p">Un parent</span>
            </label>

            <label for="near" class="bl">
                <input type="radio" name="you_are" id="near" class="input_radio" value="proche" />
                <span class="inbl w250p">Un proche</span>
            </label>

            <label for="professional" class="bl">
                <input type="radio" name="you_are" id="professional" class="input_radio" value="professionnel" />
                <span class="inbl w250p">Un(e) professionnel / lle</span>
            </label>

            <label for="association" class="bl">
                <input type="radio" name="you_are" id="association" class="input_radio" value="association" />
                <span class="inbl w250p">Une association</span>
            </label>

            <label for="neurotypical" class="bl">
                <input type="radio" name="you_are" id="neurotypical" class="input_radio" value="neurotypique" />
                <span class="inbl w250p">Un neurotypique / non-autiste</span>
            </label>
        </fieldset>

        <div>
        <button type="submit" class="btn_contact inbl" id="btn_contact">Envoyer</button>

Ce que je veux

J'aimerais que le titre de la page change lorsque je valide un formulaire vide afin que les erreurs apparaissent.

Ce que j'obtiens

Actuellement, le titre de la page ne change pas lorsque les erreurs du formulaire apparaissent.

4 réponses


Bonjour,

La il n'y a aucun lien entre les pages.
Regarde du côté des sessions

Si j'ai bien compris, je dois mettre dans le code, ce code session_start();

oui ça c'est le début.
Après tu renseignes ta variable $_SESSIONS
Sur la page du formulaire, tu testes si cette dernière existe et si oui, tu affiches en conséquences ton message.

Bonjour.
Je vais être direct, ce que tu veux faire n'a aucun sens.
Pour faire simple, est-ce que lorsque tu remplis un formulaire sur internet et que tu le valide, tu regardes l'onglet de la page pour savoir si tu as fait des erreurs ?
Surtout que normalement tu es censé le savoir quasi immédiatement.
Le seul moment où on affiche ce type d'information dans l'onglet d'une page, c'est par exemple une messagerie en temp réel, comme un t'chat, ça permet à l'utilisateur de ne pas avoir à rester sur l'onglet du site pour avoir un visuel lorsqu'il reçoit un message par exemple.
Mais certainement pas pour un formulaire de ce genre.