Formulaire PHP, problème avec une "value"

Résolu/Fermé
nicolasjoos - 21 sept. 2010 à 22:13
 nicolasjoos - 22 sept. 2010 à 21:09
Bonjour à tous!
étant nul en Php je m'en remet a votre savoir.
Voici mon problème:

<input type='text' style='width:200; <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?> Nom' size="33px" />

dans ce champ de formulaire lorsque le visiteur oublie de remplir le champ mais appuie quand même sur "envoyer" le scripte lui indique son erreur (l'oubli de remplir un champ) mais fait apparaître une seconde fois le mot "Nom" à l'interieur du champ et ainsi de suite à chaque envoie.. Je suis clair, là??
Comment l'éviter?

Merci à tout ceux qui prendront le temps de me guider!
Nicolas

16 réponses

Dynamix Messages postés 202 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 30 avril 2011 76
21 sept. 2010 à 22:22
Enlève le "Nom" du value?
0
Merci Dynamix! :-)
Je me suis mal expliqué. En fait je veux que "Nom" apparaisse dans le champ du formulaire et que le visiteur le remplace par son nom. Seulement ce fameux "Nom" ce duplique dans le champ à chaque fois que l'on clique sur " envoyer".
0
Dynamix Messages postés 202 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 30 avril 2011 76
21 sept. 2010 à 22:42
Oui cela est normal en fait, je suppose que la valeur de la variable $f_1 est issue d'un $_POST ?
0
Absolument! Ce que je souhaite est simplement de ne pas avoir à mettre le titre du champ à côté ou au dessus de celui-ci mais dedans. Quelle serait la technique appropriée? Une image en background? Une balise spéciale?
Merci du coup de main Dinamix!
0
Si ça peut aider, voilà le lien vers la page:
http://www.formatmondial.com/infodos/contacte.php
0
Dynamix Messages postés 202 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 30 avril 2011 76
21 sept. 2010 à 22:53
Tu aurais deux solutions si j'ai bien compris ce que tu voulais :

1. Tu mets un peu de javascript pour enlever nom au clic de l'utilisateur :
<input onclick="this.value='';" .... />


2. Sinon tu fais un test sur $f_1 : if(empty($f_1)) echo 'Nom'; à l'intérieur du value par exemple....
0
J'aime bien l'idée du javascript!
Cela dit je comprends pas bien ou intégrer cette ligne de code... A la place de "value"?

comme ça:

<input type='text' style='width:200; <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' <input onclick="this.value='';" NOM /><?echo stripslashes($f_1);?> Nom' size="33px" />


Je sais, je ne suis pas au point!
0

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

Posez votre question
Dynamix Messages postés 202 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 30 avril 2011 76
Modifié par Dynamix le 21/09/2010 à 23:27
Ceci est un événement JavaScript que tu rajoutes, donc tu le mets en plus!

<input type='text' style='width:200; <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' <input onclick="this.value='';" value='NOM' /><?echo stripslashes($f_1);?> Nom' size="33px" /> 
0
Génial! Ce qui se passe maintenant c'est que le mot "nom" apparaît seulement lorsque l'on clique dans le champ (normal pour un "onclick"). Comment faire pour que "nom" soit là et disparraisse au moment ou l'on clique?

Quoi qu'il en soit, Merci beaucoup pour ton aide. J'éspère pouvoir te renvoyer l'ascenseur, peut-être pour des questions plus "graphiques".
0
Dynamix Messages postés 202 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 30 avril 2011 76
Modifié par Dynamix le 21/09/2010 à 23:38
Je n'ai pas compris, ce que je t'ai dit est censé faire disparaître le Nom au moment du clic et pas l'inverse.

onclick="this.value='La valeur que tu veux'


Dans cette ligne il faut comprendre : "Au clic sur mon champ, j'affecte à CET élément (this) la VALEUR (value) EGALE (=) à 'La valeur que tu veux'"

Donc si tu veux effacer tu mets '' comme valeur comme j'ai posté au dessus.
0
mmmh.. C'est le contraire qui se passe. "Nom apparait lorsque l'on clique sur le champ. Voici le code:

<input type='text' style='width:200; <?if($errf_1==1){print("; background-color: ".$color_form_warn."; color: ".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size="33px" onclick="this.value='Nom';" />

et ici pour voir (premier champ seulement):

http://www.formatmondial.com/infodos/contacte.php
0
Dynamix Messages postés 202 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 30 avril 2011 76
21 sept. 2010 à 23:42
Tu enlèves le Nom du onclick (tu laisses '') et tu le mets dans le value comme au début pour l'avoir par défaut tout de même.
0
Tu as trouvé! C'est parfait! Grandiose!

Merci Dynamix!
Merci pour le temps que tu m'as consacré et le savoir que tu as partagé!

Bonne soirée à toi et n'hésite pas à me contacter via cette conversation si un jour tu as besoin de mes services. (J'imagine que j'aurais quand à moi plutôt besoin des tiens :-) )

Bonne nuit.
0
Dynamix Messages postés 202 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 30 avril 2011 76
21 sept. 2010 à 23:54
Ok y a pas de soucis, content de t'avoir aidé ;). Je me débrouille pas trop mal sur tout ce qui est webdesign mais si l'envie/le besoin me prend je te mp et réciproquement (sauf si c'est bon à partager bien sûr :)).
0
Bonjour Dynamix.
Hier soir, fatigué j'ai pas tout vérifier mais il reste un petit problème. Si un visiteur oublie de remplir un champ mais clique quand même sur le bouton "envoyer" mon scripte lui affiche un message d'erreur lui indiquant qu'un champ est vide. Le problème est que le titre du champ vide (p.ex "Nom") se répète dans le champs ("Nom Nom") et ainsi à chaque clique.
Saurais-tu comment l'éviter?

Bonne matinée!
0
Dynamix Messages postés 202 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 30 avril 2011 76
22 sept. 2010 à 20:33
Puis-je avoir le code? (Sinon j'ai regardé sur ton site je vois pas trop...)
0
Salut Dinamix!
J'ai passé le code à un pote qui a trouvé une solution...

<input type='text' style='<? if($errf_1==1){print(";background-color:".$color_form_warn.";color:".$color_font_warn);}?>;' name='f_1' value='<?echo stripslashes($f_1);?>' size="30" onFocus="if(this.value=='Nom'){this.value='';}" onBlur="if(this.value==''){this.value='Nom'}" />

Tu peux aller voir le résultat ici:

http://www.formatmondial.com/infodos/contacte.php

Avec un peu de Jquery et de CSS c'est completement crossbrowser! (Mac en tout cas, demain je test sous PC)

Qu'en penses-tu?
0
Dynamix Messages postés 202 Date d'inscription dimanche 22 mars 2009 Statut Membre Dernière intervention 30 avril 2011 76
22 sept. 2010 à 21:04
Ah ben c'est nickel comme ça :)
Sinon tu devrais pas avoir de soucis de compatibilité là entre les navigateurs.
0
Ouais, ça à l'air de rouler... Ensuite, le seul "problème" était d'arriver à faire que les champs "inputs" (en pixels) et "textarea" (en cols) aient la même taille. Je l'ai assez bêtement régler dans le CSS:

input, textarea {

margin: 0;
padding: 0;
width: 400px;
}

Je le dit car ça pourrait intéresser certains...

Merci pour tout Dinamix et au plaisir!
0