Afficher DIV sous condition

Fermé
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 - 25 déc. 2012 à 16:10
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 - 26 déc. 2012 à 11:15
Bonjour à tous,

Je galère pour afficher une div si la valeur == 1

<html>
<head>
<meta http-equiv="Content-Language" content="fr">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Erreur de Saisie</title>

<script language="Javascript">
// La fonction qui affiche/masque l'élément 
function bascule(elem)
{
// Quel est l'état actuel ?
etat=document.getElementById(elem).style.visibility;
if(etat=="hidden"){document.getElementById(elem).style.visibility="visible";}
else{document.getElementById(elem).style.visibility="hidden";}
}
</script>

</head>
<body>
<?PHP
$erreur=1;
if ($erreur == 1)
{
$erreur = "Date du QSO";
?>
<script type="text/javascript">
bascule(voirerr);
</script>

<div id="voirerr" align="center" style="top:160px; position:absolute; width:100%; visibility:hidden" >
	<table  border="1" width="380" id="table1" height="154" bgcolor="#C7C7C7">
		<tr>
			<td colspan="2" bgcolor="#2058FF">
			<p align="center">
			<font face="Comic Sans MS" color="#FFFFFF" size="4">Erreur de Saisie 
			!</font></td>
		</tr>
		<tr>
			<td width="19%" rowspan="4">
			<p align="center">
			<img border="0" src="images/exclamation.gif" width="46" height="47"></td>
			<td width="76%">&nbsp;</td>
		</tr>
		<tr>
			<td width="76%">
			<p align="center"><font face="Comic Sans MS">Veuillez remplir le champ
			</td>
		</tr>
		<tr>
			<td width="76%">
			<p align="center">
<b><font color="#FF0000" size="5" face="Comic Sans MS">			
<?PHP
echo $erreur;			
?>			
			</td>
		</tr>
		<tr>
			<td width="76%" height="31">&nbsp;</td>
		</tr>
	</table>
</div>
</body>
</html>



Merci de m'aider.

12 réponses

tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
25 déc. 2012 à 16:39
Salut,

<?php
$erreur = 1;
if($erreur == 1){?>
<div>Hello</div>
<?php } ?> 

malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 1
25 déc. 2012 à 17:05
Bonsoir Trian44,

Ok, Merci cela fonctionne.

Mais j'ai 20 erreurs a gérer !

Comment ne pas répéter la DIV 20 fois ?

A vous lire
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
25 déc. 2012 à 17:32
Si vous avez 20 champs différents à traiter, je crains que vous ne soyez obligé de vous taper les 20 div. Ceci dit, la gestion des erreurs donc les "div" doivent être généré du côté PHP avec un poil de CSS ..
.erreur{
border:1px solid red;
color:red;
margin:5px;
padding:5px;
}

<?php
if(empty($_POST["champ"])){
$erreur1 = '<div class="erreur">Champ vide!</div>';
}
//etc..
?>

Puis dans le formulaire à l'endroit souhaité :
<?php
if(isset($erreur1)){ 
echo $erreur1;
}
?>
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 1
25 déc. 2012 à 17:36
OK, Merci, je vais tester.

Mais comment faire disparaitre La DIV après lecture ?

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
25 déc. 2012 à 17:41
Le truc c'est que je ne sais pas ce qu'est censé afficher vos div ni sous quelle condition...Est-ce un formulaire à remplir qui doit être vérifié ou est ce autre chose?
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 1
25 déc. 2012 à 17:51
Page 1 = Formulaire
Page 2 = après validation du formulaire détecte les champs
non remplis et retourne le N° d'erreur a page 1
De retour a Page 1, j'affiche en fonction du N° l'erreur détectée.
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
25 déc. 2012 à 17:57
Le plus simple serait de faire le tout en une seule page puis de cacher le formulaire une fois que tout est bon et envoyé.
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 1
25 déc. 2012 à 18:06
En gardans mes deux pages, ma solution de départ
étais de n'avoir qu'une DIV et de l'activer si erreur détectée.

c'est la commande visibility:visible que je ne sais pas
faire dans if err ==1...
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 1
25 déc. 2012 à 18:08
par contre, je sais fermer la DIV avec un Onclick
tryan44 Messages postés 1288 Date d'inscription mardi 24 janvier 2012 Statut Membre Dernière intervention 26 octobre 2014 220
25 déc. 2012 à 18:15
Tester ce code :

<style type="text/css">
.erreur{
color:red;
background-color:#FAB9AD;
}
</style>
<?php
//Formulaire visible
$masquer_formulaire = 0;
//Formulaire envoyé
if(isset($_POST['ok'])){
    //Contrôle du nom
	if(empty($_POST['nom'])){
		$erreur_nom = '<div class="erreur">Champ nom vide!</div>';
	}
	//Contrôle du prénom
	else if(empty($_POST['prenom'])){
		$erreur_prenom = '<div class="erreur">Champ prénom vide!</div>';
	}
	//Tout est ok
	else{
		echo 'Formulaire envoyé';
		//On masque le formulaire
		$masquer_formulaire = 1;
	}
}
//Si le formulaire est visible
if($masquer_formulaire == 0){
	?>

	<form method="post" action="#">
	<?php if(isset($erreur_nom)){ echo $erreur_nom; }?>
	Nom : <input type="text" name="nom" value=""><br/>
	<?php if(isset($erreur_prenom)){ echo $erreur_prenom; }?>
	Prénom : <input type="text" name="prenom" value=""><br/>
	<input type="submit" name="ok" value="valider">
	</form>
	
	<?php } ?>


Tout en une seule page avec gestion des erreurs :).
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 1
25 déc. 2012 à 18:24
Ok, je vais tester et vous tiens au courant.

@ +
malabarbe Messages postés 127 Date d'inscription jeudi 20 septembre 2007 Statut Membre Dernière intervention 14 septembre 2016 1
26 déc. 2012 à 11:15
Un Grand Merci Trian44,

Je vais adopter cette formule qui tourne bien.

Post Résolu