Bonjour je créé un petit code demandant dans un formulaire : un titre, une couleur, et un nombre,
Ensuite un submit portant sur une page php avec des boucles if de manières à que si une case du formulaire n'est pas renseigné, l'erreur est annoncé et on doit tout réécrire.. (j'aurais préféré faire en sorte qu'on doive réécrire juste l'information manquante mais bon je ne trouve pas comment faire)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Formulaire n°1 de test de BDD</title> </head> <body> <form action="http://localhost/creation_web.php" method="get"> <p> Création de site Web <br/> Entrez le titre de votre site web <input type="text" name="titre_site_web" size="20"/> <br /> Choisissez une couleur d'arrière plan<input type="text" name="color_arPlan" size="10"/><br/> Combien voulez vous de menu ? (le nombre maximal est 5)<input type="text" name="nombre_menu" size="2" /> <br /> <input type="submit" value="Envoyer"/> <input type="reset" value="Annuler"/> </p> </form> </body> </html>
Mon problème se pose pour la suite, dans un second formulaire qui se lance si tout les boucles sont bouclées, je demande dans une condition while un titre pour chaque menu (voir en dessous du commentaire //entrer les titres du menu ci-dessous)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102 <?php if (isset($_REQUEST['titre_site_web']) and $_REQUEST['titre_site_web']!='') { if (array_key_exists('color_arPlan',$_REQUEST)and $_REQUEST['color_arPlan']!='') { if (array_key_exists('nombre_menu',$_REQUEST) and $_REQUEST['nombre_menu']!='' and $_REQUEST['nombre_menu']>0 and $_REQUEST['nombre_menu']<6) { //@mysql_connect("localhost", "Identifiant", "motdepasse")or die('impossible de se connecter'); //@mysql_select_db("test")or die('impossible de se connecter a la base de donnee'); $nombremenu = 1; //entrer les titres des menus ci-dessous echo ' <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Formulaire n°1 de test de BDD</title> <script type="text/javascript"> function envoi(form) { if (form.nom.value = "") { alert ("Saisissez le titre du menu"); form.nom.focus(); } else form.submit() ; } </script> </head> <body> <form action="http://localhost/creation_web.php" method="post">'; while ($nombremenu - 1< $_REQUEST['nombre_menu']) { echo '<p> Entrer le titre du menu n°'.$nombremenu.' <input type="text" id="'.$nombremenu.'" name="titre_menu_'.$nombremenu.'" size="20"/> </p> <p> <input type="button" name="monBoutonEnvoyer" value="Envoyer" onclick="envoi(this.form)"> </p> '; $nombremenu++; } echo ' </form> </body> </html>'; } else { echo 'Attention erreur, vous avez mal ou pas renseigné le nombre de menu (maximum 5), veuillez de nouveau renseignez vos choix'; echo '<form action="http://localhost/creation_web.php" method="post"> <p> Création de site Web <br/> Entrez le titre de votre site web <input type="text" name="titre_site_web" size="20"/> <br /> Choisissez une couleur d\'arrière plan<input type="text" name="color_arPlan" size="10"/><br/> Combien voulez vous de menu ?<input type="text" name="nombre_menu" size="2" /> <br /> <input type="submit" value="Envoyer"/> <input type="reset" value="Annuler"/> </p> </form>'; } } else { echo 'Attention erreur, vous avez oublié d\'entrez la couleur de fond, veuillez de nouveau renseignez vos choix'; echo '<form action="http://localhost/creation_web.php" method="post"> <p> Création de site Web <br/> Entrez le titre de votre site web <input type="text" name="titre_site_web" size="20"/> <br /> Choisissez une couleur d\'arrière plan<input type="text" name="color_arPlan" size="10"/><br/> Combien voulez vous de menu ?<input type="text" name="nombre_menu" size="2" /> <br /> <input type="submit" value="Envoyer"/> <input type="reset" value="Annuler"/> </p> </form>'; } } else { echo 'Attention erreur, vous avez oublié d\'entrer le titre de la page Web, veuillez de nouveau renseignez vos choix'; echo '<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> <title>Formulaire n°1 de test de BDD</title> </head> <body> <form action="http://localhost/creation_web.php" method="post"> <p> Création de site Web <br/> Entrez le titre de votre site web <input type="text" name="titre_site_web" size="20"/> <br /> Choisissez une couleur d\'arrière plan<input type="text" name="color_arPlan" size="10"/><br/> Combien voulez vous de menu ?<input type="text" name="nombre_menu" size="2" /> <br /> <input type="submit" value="Envoyer"/> <input type="reset" value="Annuler"/> </p> </form> </body> </html>'; } ?>
Là j'ai donc mon code javascript que j'essaie d'utiliser pour obliger donc à remplir ce second formulaire demandant qu'on écrive un titre à chaque menu :
Le problème étant que j'ai beau appuyer sur mon bouton créé "Envoyer" il ne se passe rien, je ne comprend pas pourquoi..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function envoi(form) { if (form.nom.value = "") { alert ("Saisissez le titre du menu"); form.nom.focus(); } else form.submit()
Je voudrais en fait pouvoir valider sans quitter la page php, le but est que j'écrive ensuite un code sql pour enregistrer dans une bdd
-le titre
-la couleur
-le nombre de menu
-chaque titre de menu
Et en cas je pensais rajouter sur le premier formulaire une demande de login qui servirait de clé primaire pour retrouver par la suite toute ces informations.
Ca peut vous paraitre confus, je débute dans le domaine donc j'essaie de me débrouiller mais je vois bien que c'est assez maladroit, si vous avez des questions je répondrais au mieux, merci de m'aider à résoudre mon problème javascript et si vous avez des suggestions pour l'ensemble du code je suis aussi preneur.
Merci encore.
Partager