Formulaire html
Résolu
crazyghandi
Messages postés
312
Date d'inscription
Statut
Membre
Dernière intervention
-
Droopy_ Messages postés 248 Date d'inscription Statut Membre Dernière intervention -
Droopy_ Messages postés 248 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai un formulaire html sur lequel je verifie tous mes champs
si un champ obligatoire n'a pas ete rempli, la page est rechargee et le champ est
marque en rouge
le probleme est que a ce moment la tous les autres champs se reaffichent vides
donc comment garder le contenu des input pendant le rechargement de la page ?
merci de vos reponses
j'ai un formulaire html sur lequel je verifie tous mes champs
si un champ obligatoire n'a pas ete rempli, la page est rechargee et le champ est
marque en rouge
le probleme est que a ce moment la tous les autres champs se reaffichent vides
donc comment garder le contenu des input pendant le rechargement de la page ?
merci de vos reponses
A voir également:
- Formulaire html
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Editeur html - Télécharger - HTML
- Formulaire de reclamation instagram - Guide
- Espace html - Astuces et Solutions
11 réponses
j'utilise du php
petit exemple de code :
//controle
if (empty($_POST['v_ville'])) {
$v_vil_stat = "e";
$val = 0;
}
//formulaire
<tr>
<td>
<?php if ($v_vil_stat == "e") {
echo "<font color='#FF0000'>Ville </font></td>"; //donc rouge si le champ ville est vide
}else{
echo "Ville";
}?>
<td class=$class><input type="text" class="input" name="v_ville"/></td>
</tr>
donc val reteste sur tous les champs et si el ne retoune pas 0 on envoie le mail
petit exemple de code :
//controle
if (empty($_POST['v_ville'])) {
$v_vil_stat = "e";
$val = 0;
}
//formulaire
<tr>
<td>
<?php if ($v_vil_stat == "e") {
echo "<font color='#FF0000'>Ville </font></td>"; //donc rouge si le champ ville est vide
}else{
echo "Ville";
}?>
<td class=$class><input type="text" class="input" name="v_ville"/></td>
</tr>
donc val reteste sur tous les champs et si el ne retoune pas 0 on envoie le mail
A ta place, pour la couleur, je ferais plutôt :
Comme ça, ça évite d'avoir deux fois Ville, car quand tu as des gros formulaires et qu'il faut les modifier, il est préférable de n'avoir à le faire qu'une fois par champs ;-)
<?php if ($v_vil_stat == "e") $color='#ff0000'; else $color='#000000'; // Par exemple echo "<font color='$color'>Ville </font></td>"; //donc rouge si le champ ville est vide }
Comme ça, ça évite d'avoir deux fois Ville, car quand tu as des gros formulaires et qu'il faut les modifier, il est préférable de n'avoir à le faire qu'une fois par champs ;-)
Ah, un bon choix ;-)
Tu vas devoir remplir le champs value pour chacun des champs :
Et ce pour chacun des champs.
Tu vas devoir remplir le champs value pour chacun des champs :
<input type="text" class="input" name="v_ville" value="<?=$_POST['v_ville']?>"/>
Et ce pour chacun des champs.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ca marche parfaitement sauf pour :
<SELECT NAME="v_sur_rdc" style="width:100px; " value="<?=$_POST['v_sur_rdc']?>">
<OPTION VALUE=""> Select
<OPTION VALUE="inf50" > < 50
<OPTION VALUE="50a100" > 50 - 100
<OPTION VALUE="sup100" > > 100
</SELECT>
il me remet "select"
et pour
<textarea class="input" name="v_loc_aut" rows="2" cols="45" value="<?=$_POST['v_loc_aut']?>"></textarea>
il me remet un champ vide
pour les input c'est nikel
<SELECT NAME="v_sur_rdc" style="width:100px; " value="<?=$_POST['v_sur_rdc']?>">
<OPTION VALUE=""> Select
<OPTION VALUE="inf50" > < 50
<OPTION VALUE="50a100" > 50 - 100
<OPTION VALUE="sup100" > > 100
</SELECT>
il me remet "select"
et pour
<textarea class="input" name="v_loc_aut" rows="2" cols="45" value="<?=$_POST['v_loc_aut']?>"></textarea>
il me remet un champ vide
pour les input c'est nikel
Pour le select, c'est un peu plus compliqué :
C'est lourd, mais bon. J'espere que tu est a l'aise avec l'opérateur ?:
<SELECT NAME="v_sur_rdc" style="width:100px; "> <OPTION VALUE=""<?=($_POST['v_sur_rdc']=="")?" selected":""?>> Select <OPTION VALUE="inf50"<?=($_POST['v_sur_rdc']=="inf50")?" selected":""?>> < 50 <OPTION VALUE="50a100"<?=($_POST['v_sur_rdc']=="50a100")?" selected":""?>> 50 - 100 <OPTION VALUE="sup100"<?=($_POST['v_sur_rdc']=="sup100")?" selected":""?>> 100 </SELECT>
C'est lourd, mais bon. J'espere que tu est a l'aise avec l'opérateur ?:
Pour le textarea, il faut faire :
La nuance est petite, mais c'est indispensable de mettre la valeur entre le tag <textarea ...> et le champs </textarea>.
<textarea class="input" name="v_loc_aut" rows="2" cols="45"><?=$_POST['v_loc_aut']?></textarea>
La nuance est petite, mais c'est indispensable de mettre la valeur entre le tag <textarea ...> et le champs </textarea>.
ok super merci beaucoup je vais applique tout ca
autrement vu que tu as l'air de t'y connaitre pourrais tu m'aider avec un souci css ?
c'est un menu css horizontal
exemple sur les deux premiers boutons :
style :
#accueil a{
float: left;
position: relative;
background-image:url(images/accueil1.jpg);
text-decoration:none;
padding-left:120px;
padding-bottom:35px;
}
#accueil a:hover{
background-image:url(images/accueil2.jpg);
}
#acquereur a{
float: left;
position: relative;
background-image:url(images/acquereur1.jpg);
text-decoration:none;
padding-left:120px;
padding-bottom:35px;
}
#acquereur a:hover{
background-image:url(images/acquereur2.jpg);
}
code :
<script type="text/javascript">
if (navigator.appName == "Microsoft Internet Explorer") {
document.write ("Le menu n'est pas encore opérationnel sous Internet Explorer");
alert ("ie");
}
document.write ('<ul style="list-style-type:none; ">');
document.write ('<li id="accueil" ><a href="?main=accueil.php"></a>');
document.write ('<li id="acquereur"><a href="?main=acquereur.php"></a>');
document.write ('<li id="vendeur"><a href="?main=vendeur.php"></a>');
document.write ('<li id="offres"><a href="?main=offres.php"></a>');
document.write ('<li id="contact"><a href="?main=contact.php"></a>');
document.write ('</ul>');
</script>
encore merci
autrement vu que tu as l'air de t'y connaitre pourrais tu m'aider avec un souci css ?
c'est un menu css horizontal
exemple sur les deux premiers boutons :
style :
#accueil a{
float: left;
position: relative;
background-image:url(images/accueil1.jpg);
text-decoration:none;
padding-left:120px;
padding-bottom:35px;
}
#accueil a:hover{
background-image:url(images/accueil2.jpg);
}
#acquereur a{
float: left;
position: relative;
background-image:url(images/acquereur1.jpg);
text-decoration:none;
padding-left:120px;
padding-bottom:35px;
}
#acquereur a:hover{
background-image:url(images/acquereur2.jpg);
}
code :
<script type="text/javascript">
if (navigator.appName == "Microsoft Internet Explorer") {
document.write ("Le menu n'est pas encore opérationnel sous Internet Explorer");
alert ("ie");
}
document.write ('<ul style="list-style-type:none; ">');
document.write ('<li id="accueil" ><a href="?main=accueil.php"></a>');
document.write ('<li id="acquereur"><a href="?main=acquereur.php"></a>');
document.write ('<li id="vendeur"><a href="?main=vendeur.php"></a>');
document.write ('<li id="offres"><a href="?main=offres.php"></a>');
document.write ('<li id="contact"><a href="?main=contact.php"></a>');
document.write ('</ul>');
</script>
encore merci
ah oui bien sur j'ai pas cite le pb
en fait sous firefox et opera il s'affiche nikel
mais sous ie les boutons sont en cascade vers le bas de gauche a droite
www.cp2a.com/ei
et dernier type de champ pour le post :
Oui <INPUT type=radio name="v_vit_ang" value="angle">
en fait sous firefox et opera il s'affiche nikel
mais sous ie les boutons sont en cascade vers le bas de gauche a droite
www.cp2a.com/ei
et dernier type de champ pour le post :
Oui <INPUT type=radio name="v_vit_ang" value="angle">
Pour le CSS, j'ai simplifié le code au maximum et j'arrive à reproduire le problème.
Mais ce genre de décalage en CSS m'as toujours planté. Je contourne le problème
avec un tableau, au lieu des float CSS.
Si quelqu'un veut tester, voici le code épuré :
Mais ce genre de décalage en CSS m'as toujours planté. Je contourne le problème
avec un tableau, au lieu des float CSS.
Si quelqu'un veut tester, voici le code épuré :
<style> #accueil a{ float: left; position: relative; background: #ccccff; text-decoration:none; padding-left:120px; padding-bottom:35px; } </style> <ul style="list-style-type:none; "> <li id="accueil" ><a href="?main=accueil.php">accueil.php</a></li> <li id="accueil"><a href="?main=acquereur.php">acquereur.php</a></li> <li id="accueil"><a href="?main=vendeur.php">vendeur.php</a></li> <li id="accueil"><a href="?main=offres.php">offres.php</a></li> <li id="accueil"><a href="?main=contact.php">contact.php</a></li> </ul>
ok merci encore pour les reponses
petit souci avec les radio, ils ne se rechargent pas en rouge, donc la valeur n'est pas "empty"
toutefois le choix n'est pas recoche, et les trois radio sont vides
autre petit souci pour creer le corps du mail j'ai une fonction load_acquereur($message)
dans cette fonction :
$message = "
<table width='600' border='1'>
<tr>
<td colspan='2'>COORDONNEES</td>
</tr>
<tr>
<td width='141'>Nom :</td>
<td width='101'>".$_POST['c_nom']."</td>
</tr>
<tr>
<td width='141'>Prénom</td>
<td width='101'>".$_POST['c_pre']."</td>
</tr>
<tr>
<td width='141'>E-mail :</td>
<td width='101'>".$_POST['c_ema']."</td>
</tr>
<tr>
<td width='141'>Téléphone :</td>
<td width='101'>".$_POST['c_tel']."</td>
</tr>
</table>";
return $message;
}
et je recois un mail avec precisement :
<table width='600' border='1'>
<tr>
<td colspan='2'>COORDONNEES</td>
</tr>
<tr>
<td width='141'>Nom :</td>
<td width='101'>nom</td>
</tr>
<tr>
<td width='141'>Prénom</td>
<td width='101'>prenom</td>
</tr>
<tr>
<td width='141'>E-mail :</td>
<td width='101'>email</td>
</tr>
<tr>
<td width='141'>Téléphone :</td>
<td width='101'>tel</td>
</tr>
</table>
(donc les post_nom,prenom, etc... sont bien sortis mais le html n'est pas pris en compte
o fait dis moi kan tu en as marre
petit souci avec les radio, ils ne se rechargent pas en rouge, donc la valeur n'est pas "empty"
toutefois le choix n'est pas recoche, et les trois radio sont vides
autre petit souci pour creer le corps du mail j'ai une fonction load_acquereur($message)
dans cette fonction :
$message = "
<table width='600' border='1'>
<tr>
<td colspan='2'>COORDONNEES</td>
</tr>
<tr>
<td width='141'>Nom :</td>
<td width='101'>".$_POST['c_nom']."</td>
</tr>
<tr>
<td width='141'>Prénom</td>
<td width='101'>".$_POST['c_pre']."</td>
</tr>
<tr>
<td width='141'>E-mail :</td>
<td width='101'>".$_POST['c_ema']."</td>
</tr>
<tr>
<td width='141'>Téléphone :</td>
<td width='101'>".$_POST['c_tel']."</td>
</tr>
</table>";
return $message;
}
et je recois un mail avec precisement :
<table width='600' border='1'>
<tr>
<td colspan='2'>COORDONNEES</td>
</tr>
<tr>
<td width='141'>Nom :</td>
<td width='101'>nom</td>
</tr>
<tr>
<td width='141'>Prénom</td>
<td width='101'>prenom</td>
</tr>
<tr>
<td width='141'>E-mail :</td>
<td width='101'>email</td>
</tr>
<tr>
<td width='141'>Téléphone :</td>
<td width='101'>tel</td>
</tr>
</table>
(donc les post_nom,prenom, etc... sont bien sortis mais le html n'est pas pris en compte
o fait dis moi kan tu en as marre
Si tu veux forcer un des bouton radio, il te suffit de faire :
Comme ça le code après cochera le bouton radio correspondant.
À noter que c'est pour cette raison que je preferre mettre toutes les valeurs
lues dans $_POST dans un objet et utiliser cet objet ensuite, comme ça j'ai pas
à modifier $_POST. C'est possible, mais je trouve pas ça propre.
if (empty($_POST['radio1'])) $_POST['radio1']='valeur1';
Comme ça le code après cochera le bouton radio correspondant.
À noter que c'est pour cette raison que je preferre mettre toutes les valeurs
lues dans $_POST dans un objet et utiliser cet objet ensuite, comme ça j'ai pas
à modifier $_POST. C'est possible, mais je trouve pas ça propre.
foreach($_POST as $champs => $valeur) $objet->$champs = $valeur;
$headers = 'From: '.$From."\nContent-Type: text/html; charset=iso-8859-1";
ca marche nikel
en revanche pour le radio j'ai mis
if (empty($_POST['a_vit_ang'])) $_POST['a_vit_ang']='valeur1';
pour
<INPUT type=radio name="a_vit_ang" value="angle"<?=($_POST['a_vit_ang']=='angle')?"selected":""?>>
mais je ne vois pas quoi mettre a la place de valeur1
ca marche nikel
en revanche pour le radio j'ai mis
if (empty($_POST['a_vit_ang'])) $_POST['a_vit_ang']='valeur1';
pour
<INPUT type=radio name="a_vit_ang" value="angle"<?=($_POST['a_vit_ang']=='angle')?"selected":""?>>
mais je ne vois pas quoi mettre a la place de valeur1
Ben 'angle', c'est avec ça que tu compares après.
Par exemple, si tu veux faire un oui/non :
<?
if (empty($_POST['ouinon'])) $_POST['ouinon']='Non'; // Non par défaut
?>
Par exemple, si tu veux faire un oui/non :
<?
if (empty($_POST['ouinon'])) $_POST['ouinon']='Non'; // Non par défaut
?>
<INPUT type=radio name="ouinon" value="Oui"<?=($_POST['ouinon']=='Oui')?"selected":""?>> Oui <INPUT type=radio name="ouinon" value="Non"<?=($_POST['ouinon']=='Non')?"selected":""?>> Non