Pb de controle de saisie dans un formulaire
Résolu/Fermé
crocus_61
Messages postés
24
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
27 juillet 2008
-
25 avril 2007 à 22:36
rosita - 10 sept. 2007 à 12:00
rosita - 10 sept. 2007 à 12:00
A voir également:
- Pb de controle de saisie dans un formulaire
- Formulaire de réclamation facebook - Guide
- Controle parental pc - Guide
- Saisie gestuelle iphone - Guide
- Contrôle parental switch ne bloque pas - Forum Nintendo Switch
- Formulaire remboursement frais de résiliation free pdf ✓ - Forum Freebox
3 réponses
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
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
mimoprod
Messages postés
7
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
22 juin 2007
4
22 juin 2007 à 15:50
22 juin 2007 à 15:50
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")%>"><br>
Mail du participant:
<input type="text" size="50" name="mail"
value="<%=Request.Form("mail")%>"><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 ^^
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")%>"><br>
Mail du participant:
<input type="text" size="50" name="mail"
value="<%=Request.Form("mail")%>"><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 ^^
25 avril 2007 à 23:28
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)
26 avril 2007 à 11:57
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.
Tu cré un fichier .js avec le controle cidessus et dans l'entête de ta page tu tu ajoute dans head:
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.
26 avril 2007 à 22:34
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 !
27 avril 2007 à 14:20
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):
.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 !
27 avril 2007 à 22:24
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..