Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/02/2012, 14h35   #1
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
Par défaut vérification formulaire champ liste menu

Bonjour
je veux vérifier lors de l'envoi de mon formulaire que tous les champs sont renseignés. Mais j'ai un problème concernant le champ select de ma liste menu, c'est le seul qui ne fonctionne pas, le script suivant ne prend pas en compte ce champ Sous menu.
le script:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script language="javascript" type="text/javascript">
function check_input(){
var message_alert = "";
for(var i = 0; i < window.document.forms[0].length ; i++) {
var rechRapide = window.document.forms[0].elements[i].value;
var nom_champ = window.document.forms[0].elements[i].name;
window.document.forms[0].elements[i].style.backgroundColor = "#FFFFFF";
if(rechRapide == "") {
window.document.forms[0].elements[i].focus();
window.document.forms[0].elements[i].style.backgroundColor = "#CCCCCC";
message_alert +=" Veuillez remplir le champ " + nom_champ +"\n";
}
}
if (message_alert == "") {
return true;
} else {
message_alert = "Informations omises dans le formulaire : \n" + message_alert;
alert(message_alert);
return false;
}
} 
</script>
le formulaire:
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
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
<form action="" method="post" enctype="multipart/form-data" name="form1" onSubmit = "var resultat = check_input(); return resultat;">
                <table width="644" height="305" border="1" cellpadding="0" cellspacing="0" bordercolor="#CC9933">
                  <tr>
                    <td width="622"><div align="center">
                        <table width="622" border="0" cellspacing="0" cellpadding="5">
                          <tr>
                            <td width="202"><div align="right"></div></td>
                            <td width="467"><div align="left"></div></td>
                          </tr>
                          <tr>
                            <td><div align="left">Titre  : </div></td>
                            <td><div align="left">
                                <input name="titre" type="text" id="titre">
                            </div></td>
                          </tr>
                          <tr>
                            <td><div align="right"></div></td>
                            <td><div align="left"></div></td>
                          </tr>
                          <tr>
                            <td><div align="left">Description : </div></td>
                            <td><div align="left">
                                <textarea name="description" cols="40" id="description"></textarea>
                            </div></td>
                          </tr>
                          <tr>
                            <td><div align="left">Prix : </div></td>
                            <td><div align="left">
                                <input name="prix" type="text" id="prix" size="10">
                                &nbsp;&euro;&nbsp;&nbsp;&nbsp;le chiffre sans le sigle &euro; </div></td>
                          </tr>
                          <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                          </tr>
                          <tr>
                            <td><div align="left">Sous menu : </div></td>
                            <td><div align="left">
                                <select name="ref_menu" id="ref_menu">
                                  <?php
do {  
?>
                                  <option value="<?php echo $row_rsSelectTheme['id_menu']?>"><?php echo $row_rsSelectTheme['id_menu_dir']; ?> - <?php echo $row_rsSelectTheme['item_menu']?></option>
                                  <?php
} 
while ($row_rsSelectTheme = mysql_fetch_assoc($rsSelectTheme));
       $rows = mysql_num_rows($rsSelectTheme);
       if($rows > 0) 
	      {
          mysql_data_seek($rsSelectTheme, 0);
	      $row_rsSelectTheme = mysql_fetch_assoc($rsSelectTheme);
          }
?>
                                </select>
                            &nbsp;&nbsp;<span class="red">&nbsp;SOUS MENU OBLIGATOIRE</span></div></td>
                          </tr>
                          <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                          </tr>
                          <tr>
                            <td><div align="left">Image : </div></td>
                            <td><div align="left">
                                <input name="photo" type="file" id="photo">
                            </div></td>
                          </tr>
                          <tr>
                            <td colspan="2">&nbsp;</td>
                          </tr>
                          <tr>
                            <td colspan="2"><div align="right"></div>
                                <div align="center">
                                  <input type="submit" name="Submit" value="AJOUTER">
                                  <input name="ajoutArticle" type="hidden" id="ajoutArticle" value="ok">
                              </div></td>
                          </tr>
                        </table>
                    </div></td>
                  </tr>
                </table>
                <p>&nbsp;</p>
                </form>
est-ce un champ particulier qui demande un code particulier, et avez-vous une idée pour résoudre mon problème. Merci d'avance
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 15h43   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Bonjour,
on voit dans ton code PHP, merci de mettre le HTML généré, que la première OPTION du SELECT a une value, donc le test ne rejette pas le SELECT.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 16h06   #3
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
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
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
<form action="" method="post" enctype="multipart/form-data" name="form1" onSubmit = "var resultat = check_input(); return resultat;">
                <table width="644" height="305" border="1" cellpadding="0" cellspacing="0" bordercolor="#CC9933">
                  <tr>
                    <td width="622"><div align="center">
                        <table width="622" border="0" cellspacing="0" cellpadding="5">
                          <tr>
                            <td width="202"><div align="right"></div></td>
                            <td width="467"><div align="left"></div></td>
                          </tr>
                          <tr>
                            <td><div align="left">Titre  : </div></td>
                            <td><div align="left">
                                <input name="titre" type="text" id="titre">
                            </div></td>
                          </tr>
                          <tr>
                            <td><div align="right"></div></td>
                            <td><div align="left"></div></td>
                          </tr>
                          <tr>
                            <td><div align="left">Description : </div></td>
                            <td><div align="left">
                                <textarea name="description" cols="40" id="description"></textarea>
                            </div></td>
                          </tr>
                          <tr>
                            <td><div align="left">Prix : </div></td>
                            <td><div align="left">
                                <input name="prix" type="text" id="prix" size="10">
                                &nbsp;&euro;&nbsp;&nbsp;&nbsp;le chiffre sans le sigle &euro; </div></td>
                          </tr>
                          <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                          </tr>
                          <tr>
                            <td><div align="left">Sous menu : </div></td>
                            <td><div align="left">
                                <select name="ref_menu" id="ref_menu">
                                                                    <option value="9">1 - sol moderne</option>
                                                                    <option value="10">1 - sol contemporain</option>
                                                                    <option value="11">2 - extérieur</option>
                                                                  </select>
                            &nbsp;&nbsp;<span class="red">&nbsp;SOUS MENU OBLIGATOIRE</span></div></td>
                          </tr>
                          <tr>
                            <td>&nbsp;</td>
                            <td>&nbsp;</td>
                          </tr>
                          <tr>
                            <td><div align="left">Image : </div></td>
                            <td><div align="left">
                                <input name="photo" type="file" id="photo">
                            </div></td>
                          </tr>
                          <tr>
                            <td colspan="2">&nbsp;</td>
                          </tr>
                          <tr>
                            <td colspan="2"><div align="right"></div>
                                <div align="center">
                                  <input type="submit" name="Submit" value="AJOUTER">
                                  <input name="ajoutArticle" type="hidden" id="ajoutArticle" value="ok">
                              </div></td>
                          </tr>
                        </table>
                    </div></td>
                  </tr>
                </table>
                <p>&nbsp;</p>
                </form>
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 16h16   #4
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
cela confirme ce je te disais, il te faut une OPTION sans value dans ton SELECT pour forcer la sélection.
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 16h31   #5
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
oui, le champ est bien rempli , la vérif doit se faire au niveau du clique sur un des menus de la liste par le visiteur, sinon message d'erreur. je sais pas comment m'y prendre. As-tu une idée?
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 16h54   #6
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Citation:
Envoyé par NoSmoking Voir le message
cela confirme ce je te disais, il te faut une OPTION sans value dans ton SELECT pour forcer la sélection.
Code html :
1
2
3
4
5
6
<select name="ref_menu" id="ref_menu">
  <option>Type de sol</option>
  <option value="9">1 - sol moderne</option>
  <option value="10">1 - sol contemporain</option>
  <option value="11">2 - extérieur</option>
</select>
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 17h03   #7
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
Merci de ta participation
oui c'est bon, je suis en train de chercher , comment mentionner dans le message d'erreur, Veuillez remplir le champ Sous menu au lieu de Veuillez remplir le champ ref_menu.
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 17h16   #8
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
peux mettre un attribut title à tes éléments et afficher celui ci plutôt que le name.

Au passage dans ta fonction il serait préférable de remplacer window.document.forms[0] par une variable locale
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function check_input(){
  var message_alert = "";
  var oForm = window.document.forms[0];
  for(var i = 0; i < oForm.length ; i++) {
    var rechRapide = oForm.elements[i].value;
    var nom_champ  = oForm.elements[i].title || oForm.elements[i].name;
    oForm.elements[i].style.backgroundColor = "#FFFFFF";
    if(rechRapide == "") {
      oForm.elements[i].focus();
      oForm.elements[i].style.backgroundColor = "#CCCCCC";
      message_alert +=" Veuillez remplir le champ " + nom_champ +"\n";
    }
  }
  if( message_alert == ""){
    return true;
  }
  else{
    message_alert = "Informations omises dans le formulaire : \n" + message_alert;
    alert(message_alert);
    return false;
  }
}
c'est encore "cleannable"
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2012, 17h29   #9
Membre confirmé
 
Inscription : octobre 2006
Messages : 340
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 340
Points : 221
Points : 221
Envoyer un message via MSN à ideal23
title, bonne idée
merci pour ton code et merci d'avoir passer du temps à résoudre mon problème.
ideal23 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h53.


 
 
 
 
Partenaires

Hébergement Web