rss
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Résolu

Pb de controle de saisie dans un formulaire

Posté par crocus_61, le mercredi 25 avril 2007 à 22:36:27
Bonjour,
J'ai développé un formulaire pour lequel je voudrais évidemment faire un contrôle de saisie ;
j'ai regardé la doc SELFHTML qui me donne un exemple que je croyais clair, mais comme la fonction est écrite en JAVA et que j’utilise PHP… il doit y avoir une astuce qui m’échappe.
Voilà mon script :

<?php
function verif_formulaire()
{
if(document.formulaire.Nom.value == "") {
alert("Veuillez entrer votre Nom");
document.formulaire.Nom.focus();
return false;
}
if(document.formulaire.Prenom.value == "") {
alert("Veuillez entrer votre Prénom");
document.formulaire.Prenom.focus();
return false;
}
}
?>

<form name="formulaire" action="PageEspaceCom.php" method="get" onSubmit="return verif_formulaire()">
<pre>
<p>Vos Nom et Prénom :<br>
<input name="Nom" type="text" size="30" maxlength="30">
<input name="Prenom" type="text" size="30" maxlength="30"> <br> <br>
<input type="submit" name="okInscrComm" value="Valider">
</pre>
</form>

Résultat : même si l’on ne saisit rien... la PageEspaceCom.php est malgré tout appelée.

A vrai dire, je ne voulais pas faire d’ »alert » mais plutôt réafficher la saisie éventuelle, avec une astérisque + texte d’un message d’anomalie à côté de la zone erronée. Mais l’aide que j’ai trouvée ne m’indique que cette solution ; je débute, alors j’améliorerai plus tard… faut-il encore que cette solution fonctionne !
Quelqu’un a-t-il une idée ?

Merci les noctambules !
Configuration: Windows Vista
Internet Explorer 7.0
Répondre à crocus_61  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Artur, le mercredi 25 avril 2007 à 23:01:28
bin, il me semble que tu fais une légére confusion. le php est un langage serveur, et javascript, côt client. Si tu veux vérifier ta saisie, il faut le faire plutôt côté client, avec du javascript.
si tu veux générer une page avec l'erreru spécifique et en gardant les champs, alors les valeurs à récupérer sont des variables $_Post['ta variable'];
et tu fais les vérifications
Répondre à Artur

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
crocus_61, le mercredi 25 avril 2007 à 23:28:48
Merci Artur, désolé... je débute, tu vois !
Je vais virer tout ce qui concerne donc la fonction Java, et faire mes contrôles en PHP;
J'ai vu qu'on peut garder la valeur saisie pour la reproposer, mais pour mon astérique et texte d'anomalie par zone de saisie... ils ne sont donc pas en input, je peux les mettre dans le formulaire pour les "poster" aussi ? (je me perds complètement dans les échanges d'infos HTML/PHP)
Répondre à crocus_61

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
txiki, le jeudi 26 avril 2007 à 11:57:03
Salut a tous,
A mon avis il est préférable de faire les contrôles en javascript (coté client donc) puis ensuite en php sinon tu générera un trafic entre le client et le serveur en permanence (tant qu'il y aura des erreurs).
L'avantage du javascript est que le contrôle se fait immédiatement avant la soumission du formulaire.
function verif() 
{ 
	if (document.forms['formulaire'].nom_champ.value == "") 
	{
		alert ('Veuillez entrer le nom_du_champ');
		document.forms['formulaire'].nom_champ.focus();
		return false;
	}
	else {return true;}
}

Tu cré un fichier .js avec le controle cidessus et dans l'entête de ta page tu tu ajoute dans head:
<script language="javascript" src="ton_dossier/ton.js" type="text/javascript"></script>


Si le champ est vide au moment de la validation, ça réaffichera le formulaire mais avec le curseur positionné sur le champ en question grace a .focus dans le script.
C'est quand même interressant de ne pas avoir a chercher quel est le champ qui doit etre renseigné, si certains sont obligatoires et pas d'autres par exemple.
Le bonheur est la seule chose que l'on peut donner sans l'av­oir.
Répondre à txiki

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
crocus_61, le jeudi 26 avril 2007 à 22:34:42
Bonsoir txiki, et merci également de ta réponse !
Alors je viens d'essayer aussi ta solution, et je ne sais pas si j'ai bien mis ce qu'il fallait dans le "head" :
<script language="javascript" src="localhost/Commercant_InfoCtl.js" type="text/javascript"></script>

(j'ai essayé plusieurs chemins... vérifié mes noms de formulaire, mes onsubmit... je crois tout, quoi, mais rien n'y fait, aucun msg ne s'affiche)

Tu as une autre piste ?

Sinon, pour la solution du ctl PHP, peux-tu me dire comment je vais faire apparaître les textes d'anomalie par champs de saisie ? (je compte faire une seule procédure qui contrôle tout d'un coup, et renseigne, par champs de saisie, un texte ano différent).
Faudra-t-il que je passe par PHP pour constituer le script HTML avec des "echo" pour sortir la valeur de ces textes ? Ne pourrais-je pas plutôt fournir à HTML ces valeurs ?

Beaucoup de questions, hein ? mais je plane !
Merci, si tu quelqu'un a le petit truc qui déverrouille tout mon dév !
Répondre à crocus_61

5


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
txiki, le vendredi 27 avril 2007 à 14:20:34
Salut crocus_61,
Bon je j'étais en plein déménagement, désolé pour le retard !
Qu'a-tu mis dans le fichier Commercant_InfoCtl.js ?

if (document.forms['formulaire'].nom_champ.value == "")
['formulaire'] est le nom de ton formulaire.
Si tu a plusieurs champs obligatoires il faudra autant de if que de champs obligatoires (donc a controler).
Voici un exemple avec plusieurs controles (a adapter au tiens bien sur):
// Vérification des champs obligatoires du formulaire
function verif() 
{ 
	if (document.forms['formulaire'].groupe.value == "") 
	{
		alert ('Veuillez ..........');
		document.forms['formulaire'].groupe.focus();
		return false;
	}
	if(document.forms['formulaire'].categorie.value == "") 
	{
		alert (Veuillez ..........');
		document.forms['formulaire'].categorie.focus();
		return false;
	}
	if(document.forms['formulaire'].nom.value == "") 	{
		alert ('Veuillez ..........');
		document.forms['formulaire'].nom.focus();
		return false;
	}
	if(document.forms['formulaire'].reference.value == "") 
	{
		alert (Veuillez ..........');
		document.forms['formulaire'].reference.focus();
		return false;
	}


.groupec'est le nom du champ (et chez moi, celui aussi du champ de la table sur la base de données).
le mien, je l'ai enregistré sous verifs.js, c'est court et explicite.

Si tu ne pige pas, n'hésite pas ! Le bonheur est la seule chose que l'on peut donner sans l'av­oir.
Répondre à txiki

6


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
crocus_61, le vendredi 27 avril 2007 à 22:24:16
Merci de ta précieuse aide, Txiki, et du temps que tu passes à me répondre, sympa ! Bon emménagement !

Ben pour le ctl, j'avais déjà fait cette vérif, sur le nom du formulaire (j'ai fait attention aux maj/min, je crois que j'ai tout vérifié... bon, c'est peut-être aussi la façon dont j'ai enregistré le dos.js ==> l'explorateur me l'indique en "document texte" malgré le suffixe .js

Tu sais, je viens d'un monde "mini", et tout est différent par rapport à ce que j'ai l'habitude de manipuler... je galère.

Alors je tente les contrôles en PHP, mais là aussi, je coince :
voici un exemple de contrôle que je fais :

$nbAno=0;
$ano_nom='';
// Nom obligatoire
if (isset($_GET["Nom"])) {
$nom = $_GET["Nom"];
if ($nom=='') {
$nbAno++;
$ano_nom='Nom obligatoire'
}
}
...

et plus loin,
// si aucune anomalie, enregistrement des modifs
if ($nbAno == 0) {
... je met la BD à jour, c'est ok
}
// si des anomalies ont été détectées, réaffichage avec les ano
else {
echo '<form name="formInfoComm" action="PageEspaceCom.php" method="get" onSubmit="return verif_formulaire()">'; (nb, verif_formulaire ne sert à rien, puisque ko)

// Remplissage du formulaire de saisie des infos
include "InfoSaisir.php";
echo '<input type="submit" name="okModif" value="Valider vos modifications">';
echo '</form>';
}
?>

Enfin, dans InfoSaisir.php, on a :
<p>Vos informations personnelles :<br>
Vos Nom et Prénom :<br>
<input name="Nom" type="text" size="30" maxlength="30" value= <?php echo $nom; echo $ano_nom; ?> >
<input name="Prenom" type="text" size="30" maxlength="30" value= <?php echo $prenom; echo $ano_prenom; ?> > <br>

et … il ne connaît pas ano_nom…
Effectivement, ce ne sont pas des variables du formulaire, mais… vois-tu ce que je dois faire stp ?

Je vais fouiller encore..
Répondre à crocus_61

7


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
txiki, le vendredi 27 avril 2007 à 23:26:40
Mille excuses ! j'avais zappé la dernière ligne du script de controle. Il faut que tu rajoute ceci après le dernier
if(document.forms['formulaire'].reference.value == "")
{
alert (Veuillez entrer ... mon mesage !');
document.forms['formulaire'].reference.focus();
return false;
}

	else {return true;}
}

.reference étant le nom du champ de mon form.

As-tu bien indiqué le chemin dans le head
<script language="javascript" src="mon_dossier/verif.js" type="text/javascript"></script> verif.js étant le nom de MON fichier javascript mais pourrait très bien s'appelr tartampion.js.

C'est pas possible que ça ne marche pas.
Ecoute, passe moi ton formulaire (tel que tu l'a écrit, avec tous les champs et leur nom et surtout ceux que tu veux rendre obligatoires.
Je te ferai le js de controle (et pourtant je n'y pipe pas grand chose en javascript mais ça j'ai compris le principe au moins). hi hi hi !

N'oublie pas que ton form doit avoir un nom ( <form name="..." action="..." etc...)

Mais je le répète, le chemin où se trouve ton js est très important. Sinon, le contrôle ne pourra se faire.
N'hésite pas a m'envoyer ton form.

Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Répondre à txiki

8


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
crocus_61, le samedi 28 avril 2007 à 00:03:34
Stoppe tout !
Merci merci !!
Ca marche !!
Ce devait être le chemin, comme tu le disais...
Yesssss !
A+
Répondre à crocus_61

9


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
txiki, le samedi 28 avril 2007 à 13:59:53
Good !

Bonne continuation ! Le bonheur est la seule chose que l'on peut donner sans l'avoir.
Répondre à txiki

10


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
mimoprod, le vendredi 22 juin 2007 à 15:50:15
Au lieu de créer un nouveau sujet, voila j'ai le même soucis. Je n'ai aucun controle de saisie.

Voila mon code ou y a le formulaire :

<html>
<head>
<title>test formulaire ASP</title>
<script language="JavaScript" src="verif.js" type="text/javascript"></script>
</head>
<body>
<%
'if Request.Form("nom")<> "" and Request.Form ("prenom")<> "" and Request.Form ("mail")<>"" then
Response.Write "Votre nom est : " & (Request.Form("nom") & "<br>")
Response.Write "Votre prénom est : " & (Request.Form("prenom") & "<br>")
Response.Write "Votre mail est : " & (Request.Form("mail") & "<br>")
'end if
%>

<form name="formulaire" method="post">
<strong> Saisie des informations </strong><br>
Nom du participant:
<input type="text" size="25" name="nom"
value="<%=Request.Form("nom")%>"­;><br>
Prénom du participant:
<input type="text" size="20" name="prenom"
value="<%=Request.Form("prenom")%>&q­uot;><br>
Mail du participant:
<input type="text" size="50" name="mail"
value="<%=Request.Form("mail")%>&quo­t;><br>
<input type="submit" value="envoyer">
</form>

</body>
</html>

et voici le code verif.js :

function verif ()
{
if (document.forms['formulaire'].nom.value == "")
{
alert('Veuillez saisir votre nom')
document.forms['formulaire'].nom.focus();
return false;
}
if (document.forms['formulaire'].prenom.value == "")
{
alert('Veuillez saisir votre prénom')
document.forms['formulaire'].prenom.focus();
return false;
}
if (document.forms['formulaire'].mail.value == "")
{
alert('Veuillez saisir votre email')
document.forms['formulaire'].mail.focus();
return false;
}
else (return true;)
}

Merci d'avance ^^
Répondre à mimoprod

11


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 rosita, le lundi 10 septembre 2007 à 12:00:21
slt je voudrais que l'on m'explique le code de tout à l'heure
Répondre à rosita
Logiciels pertinents trouvés dans les téléchargements
Télécharger Control Kids 6.0Control Kids - Logiciel de contrôle parental qui filtre tous les sites Internet à contenu pornographique ou violent, bloque les...Catégorie: Contrôle parental
Licence: Freeware/gratuit
Télécharger Face Control Plug-in   1.25Face Control Plug-in - Quand vous voulez retoucher une image, la partie faciale est la plus délicate. Si cette partie est ratée, quoique vous...Catégorie: Trucage photo
Licence: Freeware/gratuit
Télécharger Notebook Hardware Control   2.0Notebook Hardware Control - Notebook Hardware Control est un outil de contrôle des composants de votre Notenook. - Il contrôle la gestion...Catégorie: Optimisation
Licence: Freeware/gratuit
Télécharger Chat Controller   1.3.0Chat Controller - Chat Controller est un outil de contrôle parental vous permettant de limiter l'accès à la messagerie instantanée. Vous...Catégorie: Messagerie instantanée
Licence: Freeware/gratuit
Plus de logiciels gratuits sur « Pb de controle de saisie dans un formulaire »