Formulaire html

Résolu/Fermé
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 - 20 nov. 2008 à 01:29
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 - 20 nov. 2008 à 03:08
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

11 réponses

Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
20 nov. 2008 à 01:31
Tu utilises quel langage ? (à part le HTML, bien sûr ;-)
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
20 nov. 2008 à 01:34
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
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
20 nov. 2008 à 01:41
A ta place, pour la couleur, je ferais plutôt :

<?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 ;-)
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
20 nov. 2008 à 01:38
Ah, un bon choix ;-)

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.
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
20 nov. 2008 à 01:41
ok je test ca tout de suite merci
0

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

Posez votre question
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
20 nov. 2008 à 01:46
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
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
20 nov. 2008 à 01:51
Pour le select, c'est un peu plus compliqué :

<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 ?:
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
20 nov. 2008 à 01:49
Pour le textarea, il faut faire :

<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>.
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
20 nov. 2008 à 01:55
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
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
20 nov. 2008 à 01:58
Je suis pas expert en CSS, moi c'est plutôt, le PHP et HTML.

C'est quoi le problème exactement ?
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
20 nov. 2008 à 02:06
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">
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
20 nov. 2008 à 02:23
Pour ton champs <input> fait :
<INPUT type=radio name="v_vit_ang" value="angle"<?=($_POST['v_vit_ang']=='angle')?"selected":""?>>

À noter, c'est peut-être checked au lieu de selected, je suis pas sûr.
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25 > Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009
20 nov. 2008 à 02:25
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é :
<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>

0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
20 nov. 2008 à 02:37
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
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
20 nov. 2008 à 02:41
Si tu veux forcer un des bouton radio, il te suffit de faire :
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;
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
20 nov. 2008 à 02:43
Non, c'est bon, le forum est un peu à l'arrêt à cette heure.
Pour moi il est 21h43, et je zieute la TV tranquillement... ;-)
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25 > Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009
20 nov. 2008 à 02:46
Pour envoyer un mail en HTML, il faut changer les entetes par défaut :

notamment :
Content-Type: text/html; charset=ISO-8859-1
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19 > Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009
20 nov. 2008 à 02:49
cad $headers =" ontent-Type: text/html; charset=ISO-8859-1"; ?
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25 > crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011
20 nov. 2008 à 02:50
Ça dépend de la fonction que tu utilises pour envoyer le mail. En général, elle prévoit de pouvoir changer le header du mail...
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
20 nov. 2008 à 02:54
$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
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
20 nov. 2008 à 02:59
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
?>
<INPUT type=radio name="ouinon" value="Oui"<?=($_POST['ouinon']=='Oui')?"selected":""?>> Oui
<INPUT type=radio name="ouinon" value="Non"<?=($_POST['ouinon']=='Non')?"selected":""?>> Non
0
crazyghandi Messages postés 312 Date d'inscription vendredi 9 novembre 2007 Statut Membre Dernière intervention 4 octobre 2011 19
20 nov. 2008 à 03:04
ok ca marche

moi je marrete la je resoudrai le pb du css sou ie demain merci encore pour le coup de main
0
Droopy_ Messages postés 248 Date d'inscription dimanche 16 novembre 2008 Statut Membre Dernière intervention 17 janvier 2009 25
20 nov. 2008 à 03:08
De rien.
0