Même si ce que tu dis est vrai, tu es un peu dur quand même.
Pour ne pas valider le formulaire en cas d'échec, tu peux utiliser un preventDefault sur ton event ou alors tu retournes false au choix.
Cordialement,
Patouche
Version imprimable
Je viens de faire un test. Y a pas d'erreurs !!
Mais il ne se passe rien...
montre nous ta nouvelle fonction et les appels de tes formulaires stp
Il te faut un bouton avec un attribut type ayant la valeur submit.
Grâce à ça, tu pourras valider ton formulaire.
Cordialement,
Patouche
Code:
1
2 <input type="button" name="valider" value="OK" onClick="controle()"/>
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13 <SCRIPT LANGUAGE="JavaScript"> function controle(form) { if (form == 'client'){ var cp = document.client.codePostalClient.value; var telF = document.client.numTelFixe.value; var telP = document.client.numTelPort.value; if ((cp < 1000) || (cp >= 100000)) { alert("code postal erroné"); } ...
Qu'est ce que c'est?
C'est un input permettant de valider ton formulaire sans passer par js :
Code:
1
2<input type="submit" value="valider le formulaire" />
Sinon pour ton problème, il ne se passe rien car tu utilises onClick="controle()" alors que ta fonction attend un paramètre qui est le nom de ton formulaire. Ainsi pour le formulaire client, tu devras ecrire onClick="controle('client')" ce qui lancera la validation de ton formulaire client contenu dans ton bloc correspondant dans ta fonction js
Merci bien.
Désolé de t'embêter, mais j'ai encore une question ^^
Quand je valide les informations, y'a un gros temps d'attente puis message d'erreur, Appache http serveur doit fermer.
Je te mets le code de la page appelante et celle appelée :
page collecte qui appelle :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 <?php include "haut.php"; include "fonction.php"; ?> <form name="client" method="post" action="proprietaire.php"> <input type="radio" name="puissance[]" value="Inf"/>Puissance Inférieure à 36 kVA<input type="radio" name="puissance[]" value="Sup"/>Puissance comprise entre 36 et 250 kVA<br/> Entrez votre nom : <input type="text" name="nom"/> <br/> Entrez votre prenom : <input type="text" name="prenom"/><br/> ou la raison sociale de votre entreprise (si vous êtes une entreprise) : <input type="text" name="repEntreprise"/><br/> Entrez votre adresse : <input type="text" name="adresseClient"/><br/> Entrez le nom de votre commune : <input type="text" name="communeClient"/><br/> Entrez votre code postal : <input type="text" name="codePostalClient"/><br/> Entrez votre numéro de téléphone fixe : <input type="text" name="numTelFixe"/><br/> Entrez votre numéro de téléphone portable : <input type="text" name="numTelPort"/><br/> Entrez votre adresse e-mail : <input type="text" name="mailClient"/><br/> Entrez le nom de votre interlocuteur : <input type="text" name="nomInterlocuteur"/><br/> <input type="radio" name="exploitation[]" value="solo"/>Demande à son propre compte<input type="radio" name="exploitation[]" value="mandataire"/>Demande en tant que mandataire<br/> <input type="button" name="valider" value="OK" onClick="controle('client')"/><input type="reset" value="Annuler"/></br> </form> <?php include "bas.php"; ?>
page propriétaire qui est appellée :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <?php include "haut.php"; include "fonction.php"; ?> <form name="proprietaire" method="post" action="situationGeographique.php"> Entrez votre nom : <input type="text" name="nom"/> <br/> Entrez votre prenom : <input type="text" name="prenom"/><br/> ou la raison sociale de votre entreprise (si vous êtes une entreprise) : <input type="text" name="repEntreprise"/><br/> Entrez votre adresse : <input type="text" name="adressePropriétaire"/><br/> Entrez le nom de votre commune : <input type="text" name="communePropriétaire"/><br/> Entrez votre code postal : <input type="text" name="codePostalPropriétaire"/><br/> Entrez votre numéro de téléphone fixe : <input type="text" name="numTelFixe"/><br/> Entrez le nom du mandataire : <input type="text" name="nomMandataire"/></br> <input type="button" name="valider" value="OK" onClick="controle('proprietaire')"/><input type="reset" value = "Annuler"/></br> </form> <?php $nom = $_POST['nom']; $prenom = $_POST['prenom']; $entreprise = $_POST['repEntreprise']; $adresse = $_POST['adresseClient']; $commune = $_POST['communeClient']; $code_postal = $_POST['codePostalClient']; $telephone = $_POST['numTelFixe']; $portable = $_POST['numTelPort']; $mail = $_POST['mailClient']; $interlocuteur = $_POST['nomInterlocuteur']; $puissance = $_POST['puissance[]']; $exploitation = $_POST['exploitation[]']; //On se connecte connectContratGlobal(); //On prépare la commande sql d'insertion $sql = "INSERT INTO Client VALUES('','".$puissance."','".$nom."','".$prenom."','".$entreprise."','".$adresse."','".$commune."','".$code_postal."','".$telephone."','".$portable."','".$mail."','".$interlocuteur."','".$exploitation."')"; /*on lance la commande (mysql_query) et au cas où, on rédige un petit message d'erreur si la requète ne passe pas (or die) (Message qui intègrera les causes d'erreur sql)*/ mysql_query ($sql) or die ('Erreur SQL : '.$sql.'<br />'.mysql_error()); // on ferme la connexion mysql_close(); include"bas.php"; ?>
Désolé de t'embêter mais j'y connais pas grand chose.
Merci encore
Code:
1
2
3 $puissance = $_POST['puissance[]']; $exploitation = $_POST['exploitation[]'];
Ces lignes me semblent suspectes. Normalement on fait plutot :
Code:
1
2
3 $puissance = $_POST['puissance']; $exploitation = $_POST['exploitation'];
et ensuite $puissance et $exploitation sont des array() contenant tes valeurs. Tu peux faire un var_dump() sur tes variables voir ce qu'elles contiennet vraiment. D'autre part, comment est définie ta fonction connectContratGlobal() ?
contratGlobal est ma BDD MySql, je te mets le code de fonction.php :
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <?php function connectContratGlobal(){ $base = mysql_connect ('localhost', 'root', ''); mysql_select_db ('ContratGlobal', $base) ; } # Cette fonction teste la présence de caractères spéciaux # Renvoie 1 si des caractères spéciaux sont trouvés, ou 0 si la chaine est validée # Cela évitera des injections SQL par exemple, ou inclusion XSS (je te laisse te documenter sur les deux) function caractSpeciaux ($string) { $erreur = 1; if (preg_match("#^[a-zA-Z0-9@_\.-]{3,20}$#", $string)) $erreur = 0; return $erreur; } ?>
Voila
Mets en commentaires ces lignes :
Code:
1
2
3 //mysql_query ($sql) or die ('Erreur SQL : '.$sql.'<br />'.mysql_error()); //mysql_close();
et rajoute un
Code:
1
2 echo $sql;
voir si ta requete est correctement formatée
oh ! ma page est passée à propriétaire. Et ça m'affiche correctement mes infos entrées sauf les boutons radio où ça m'indique Array.
Le problème vient de la alors non?
Tu n'as pas besoin de tableau pour les radios, seulement pour les checkbox donc remplace par :
Code:
1
2 <input type="radio" name="exploitation" value="solo"/>Demande à son propre compte<input type="radio" name="exploitation" value="mandataire"/>Demande en tant que mandataire<br/>
Merci beaucoup !!
si j'ai encore besoin d'aide, je sais vers qui me tourner désormais ^^