1134 sujets

Accessibilité du Web

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.

<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" action="contact.php">
		<?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>
		</div>
	</form>


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

De plus, lorsque j'appuie sur le bouton d'envoi et que mes champs de saisie sont vides, mes erreurs apparaissent bien mais lorsque je mets un mauvais format d'adresse-mail, j'ai bien une erreur mais elle vient du navigateur.
J'aimerais que toutes mes erreurs du formulaire apparaissent bien lorsque je valide un formulaire vide ou que je mets un mauvais format d'adresse-mail. J'aimerais que le message de confirmation apparaissent également lorsque le formulaire est correctement rempli.
salut
à part mettre la phrase "erreur" dans une variable tu ne fais rien avec elle...
il faudrait la retourner à ton formulaire pour l'afficher Smiley smile
Dur de t'aider car pour afficher, il faut avoir écrit ton doctype chez le visiteur !
donc ton PHP écrit et envoie la page au visiteur et la ou tu souhaites tu écrit:

<div> le formulaire par exemple.....
<br />
<?PHP
if ($erreurs!="") {
   echo "<script>function changeTitle() {
    alert(window.parent.document.title);
    window.parent.document.title = 'erreur sur le formulaire';
    alert(window.parent.document.title);</script>";
}
?>
ETC...
</div>