IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Formulaire bouton "Envoyer" qui n'envoie pas


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut Formulaire bouton "Envoyer" qui n'envoie pas
    Bonjour je créé un petit code demandant dans un formulaire : un titre, une couleur, et un nombre,

    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>
    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
    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>';
    	}		
    ?>
    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)

    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 :

    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()
    Le problème étant que j'ai beau appuyer sur mon bouton créé "Envoyer" il ne se passe rien, je ne comprend pas pourquoi..
    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.

  2. #2
    Membre Expert
    Avatar de gwyohm
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2007
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 925
    Par défaut
    Salut,

    Si j'ai bien compris, c'est le 2ème formulairre qui pose problème ?
    Peux tu nous envoyer le source généré (clique droit / voir la source) ?

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut
    Bonjour, voilà c'est le second formulaire qui ne fonctionne pas, voici le code source de la page générée :

    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
     
    				<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"><p>
    					Entrer le titre du menu n°1
    					<input type="text" id="1" name="titre_menu_1" size="20"/>
    					</p>
    					<p>
    					<input type="button" name="monBoutonEnvoyer" value="Envoyer" onClick="envoi(this.form);">
    					</p>
    					<p>
    					Entrer le titre du menu n°2
    					<input type="text" id="2" name="titre_menu_2" size="20"/>
     
    					</p>
    					<p>
    					<input type="button" name="monBoutonEnvoyer" value="Envoyer" onClick="envoi(this.form);">
    					</p>
     
    					</form>
    				</body>
    					</html>
    au début j'avais mis le input après le while de façon à avoir un seul bouton pour tout le formulaire, enfin voilà quand j'écris rien, il n'y a pas le message d'alert : alert ("Saisissez le titre du menu") qui apparait..

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    il n'a pas de bouton submit ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2008
    Messages : 112
    Par défaut
    Euh en fait j'ai essayé de faire en sorte qu'il appel la fonction envoi, et à la fin de cette fonction il y a un form.submit si la condition est fausse, c'est à dire que si form.nom.value != "" alors il y a un form.submit, mais la syntaxe doit être mauvaise ? j'ai trouvé celle là dans un bouquin pourtant.

    J'me dis que c'est l'appel à la fonction qui n'est peut être pas correct ?

  6. #6
    Expert éminent

    Avatar de vermine
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    6 582
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2008
    Messages : 6 582
    Par défaut Cette place est réservée
    Bonjour,

    Je vois deux petites choses qui ne règleront peut-être pas votre problème mais qu'il vaut mieux corriger pour l'une, et qu'il faut corriger pour l'autre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    function envoi(form)
    {
         if (form.nom.value = "")
    - form n'est a priori pas un mot réservé mais presque. Ici, il est possible que ça gêne. On peut passer le nom d'un formulaire en paramètre mais alors on il est préférable de l'utiliser avec une autre syntaxe comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    document.forms[maVariable];
    Il y a une troisième syntaxe, mais voila qu'elle m'échape. Bref, quoiqu'il en soit, il est préférable de ne pas employer de nom de variable qui ressemble à des éléments de la page tels que: document, form, submit, ...

    - Il faut deux égales (==) pour faire une comparaison.


    Le troisième point, et non le moindre, est cet élément "nom" que je ne retrouve pas dans votre formulaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    form.nom.value
    form.nom.focus();

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. formulaire qui n'envoie pas se qu'il doit
    Par arckaniann dans le forum Langage
    Réponses: 1
    Dernier message: 15/12/2011, 01h16
  2. Réponses: 10
    Dernier message: 30/03/2007, 17h30
  3. formulaire qui n'envoie pas a la bonne page
    Par hansaplast dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 19/06/2006, 14h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo