bonjour,
j'ai ecris ces scripts :
une page principale contenant un formulaire et des combo à remplir au chargement de la page. Donc le script de la page principale :
pour remplir les combo de ce formulaire j'ai ecris ces 2 fonctions :
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 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Document sans titre</title> <script language="javascript" type="text/javascript"v src="Connections/scripts.js"></script> </head> <body onload="RempliAll(document.fiche_recette)"> <form method="post" id="fiche_recette" name="fiche_recette" action=""> <label>titre <input type="text" name="titre" /> </label> <label>Categorie <select name="categorie" id="categorie" onchange="RempliSousCategorie(this.form)"> </select> </label> <input type="button" name="Submit" value="Nouvelle categorie" onclick="PopUp('ajout_categorie.php')"/> <label>Sous-catégorie <select name="sous_categorie" id="sous_categorie"> </select> </label> <input type="submit" name="Submit2" value="Nouvelle sous categorie" onclick="PopUp('ajout_sous-categorie.php')" /> <p> <label>Dificulté <select name="dificulte" id="dificulte"> </select> </label> <input type="submit" name="Submit3" value="Nouvelle" onclick="PopUp('ajout_dificulte.php')" /> <label>Coût <select name="cout" id="cout"> </select> </label> <input type="submit" name="cout" value="Nouveau" onclick="PopUp('ajout_cout.php')" /> <label> Nombre de parts <select name="parts"> </select> <input type="submit" name="Submit4" value="Nouveau" onclick="PopUp('ajout_part.php')" /> </label> </p> <p> <label>Durée de préparation <select name="duree_prepa"> </select> <input type="submit" name="Submit5" value="Nouveau" onclick="PopUp('ajout_tps_prepa.php')" /> </label> <label>Durée de cuisson <select name="select7"> </select> </label> </p> <p><fieldset id="ingredient"><legend>Ingrédients</legend> <p> <label>ingrédient <select name="ingredient"> </select> </label> <label>quantité <select name="quantite" onchange="Ingredient()"> <option></option> <option>test</option> </select> </label> </p> </fieldset> <label>préparation</label> <textarea name="textfield2" cols="50" rows="20"></textarea> </form> </body> </html>
la fonction Rempli() appelle un script php que voici :
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 function RempliAll(f) { Rempli(f,'categorie'); Rempli(f,'dificulte'); Rempli(f,'cout'); } function Rempli(f,combo) { if(window.XMLHttpRequest) // Firefox xhr_object = new XMLHttpRequest(); else if(window.ActiveXObject) // Internet Explorer xhr_object = new ActiveXObject("Microsoft.XMLHTTP"); else { // XMLHttpRequest non supporté par le navigateur alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); return; } xhr_object.open("POST","rempli.php",false); data = "form="+f.name+"&select="+combo; xhr_object.setRequestHeader("content-type", "application/x-www-form-urlencoded"); xhr_object.send(data); if(xhr_object.readyState == 4) eval(xhr_object.responseText); }
mon probleme :
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 <?php header('Content-type: text/html; charset=iso-8859-1'); require_once('Connections/recette.php'); switch($_POST['select']) { case "categorie": $sql = "select * from categorie order by ID_categorie"; $req = mysql_query($sql) or die(mysql_error()); echo 'var o = null;'; echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];'; echo 's.options.length = 0;'; while ($r = mysql_fetch_array($req)) { echo 's.options[s.options.length] = new Option("'.$r['nom_categorie'].'");'; } break; case "dificulte": $sql = "select * from difficulte order by iddifficulte"; $req = mysql_query($sql) or die(mysql_error()); echo 'var o = null;'; echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];'; echo 's.options.length = 0;'; while ($r = mysql_fetch_array($req)) { echo 's.options[s.options.length] = new Option("'.$r['difficulte'].'");'; } break; case "cout": echo "alert('form = ".$_POST['form']." select = ".$_POST['select']."');"; $sql = "select * from cout"; $req = mysql_query($sql) or die(mysql_error()); echo 'var o = null;'; echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];'; echo 's.options.length = 0;'; while ($r = mysql_fetch_array($req)) { echo 's.options[s.options.length] = new Option("'.$r["cout"].'");'; } break; } ?>
au chargement de la page le 2 premieres combo sont chargées mais la troisieme genere une erreur que voici :
je n'arrive pas à comprendre pourquoi ça fonctionne pour les 2 premieres mais pas pour la troisieme alors que le code est le même
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Erreur : s.options has no properties Fichier source : http://127.0.0.1/recettes/Connections/scripts.js Ligne : 25
merci d'avance pour vos idées
Partager