Bonjour,
voila j'essaie d'utiliser pour la première fois les objets XMLHTTPRequest.
EN fait j'ai un formulaire avec deux listes liées dont le contenu provient d'une bdd.
Le but étant de remplir la 2ème liste en fonction du choix fait dans la 1ère sans avoir de rechargement de page. J'ai repris des fonctions existantes ( blog de qwix) et ai un peu de mal à réaliser ce que je veux faire.
J'ai besoin d'aide au niveau de ma fonction javascript (senddata() et dans le code php de ma page (get.php) qui va actualiser la seconde liste.
Voila ma page avec le formulaire et la fonction javascript
et ma page get.php
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
103 <?php // les includes require_once "includes/data.inc.php"; require_once "includes/db.inc.php"; require_once "includes/fns.inc.php"; // requete de sélection des catégories $reqCategorie = "SELECT id_categorie, nom_categorie FROM categorie"; $res_reqCategorie = mysql_query($reqCategorie); // en cas d'erreur if (!$res_reqCategorie) echo "Erreur n° ".mysql_errno()." : ".mysql_error(); ?> <html> <head> <script language="javascript"> /** * Permet d'envoyer des données en GET ou POST en utilisant les XmlHttpRequest */ function sendData(data,method) { if(document.all) { //Internet Explorer var XhrObj = new ActiveXObject("Microsoft.XMLHTTP"); }//fin if else { //Mozilla var XhrObj = new XMLHttpRequest(); }//fin else //définition de l'endroit d'affichage: var content = document.getElementById("image"); //si on envoie par la méthode GET: if(method == "GET") { if(data == 'null') { //Ouverture du fichier sélectionné: XhrObj.open("GET", "get.php"); }//fin if else { //Ouverture du fichier en methode GET XhrObj.open("GET", "get.php?"+data); }//fin else }//fin if else if(method == "POST") { //Ouverture du fichier en methode POST XhrObj.open("POST", "get.php"); }//fin elseif //Ok pour la page cible XhrObj.onreadystatechange = function() { if (XhrObj.readyState == 4 && XhrObj.status == 200) content.innerHTML = XhrObj.responseText; } if(method == "GET") { XhrObj.send(null); }//fin if else if(method == "POST") { XhrObj.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); XhrObj.send(data); }//fin elseif }//fin fonction SendData </script> </head> <body> <form name="formGet" method="get"> <label for="categorie">Catégorie de la fiche:</label> <select name="categorie" id="categorie" onChange="sendData('idcategorie='+document.formGet.categorie.value,'GET')"> <option value="">Sélectionnez une catégorie</option> <option value="">- - - - - - - - - - - - - - - - - - - - - - -</option> <? if (mysql_num_rows($res_reqCategorie) != 0) { // boucle sur les categorie while ($tabCategorie = mysql_fetch_array($res_reqCategorie)) { echo "<option value=\"".$tabCategorie["id_categorie"]."\">".$tabCategorie["nom_categorie"]."</option>\n"; } } ?> </select><br /> <select name="image" id="image"> <option value="">Sélectionnez une image</option> <option value="">- - - - - - - - - - - - - - - - - - - - - - -</option> <option value="">pas d'image</option> </select> <br /> </form> </body> </html>
[/code]
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 <?php // les includes require_once "includes/data.inc.php"; require_once "includes/db.inc.php"; require_once "includes/fns.inc.php"; // requete des titres des fiches // pour sélection des images en fonction des catégories if (isset($_GET['idcategorie']) && $_GET['idcategorie']!="") { $reqNomJaquette= "SELECT image.id_image, image.nom_image, image.url_image" . " FROM image, type_image" . " WHERE type_image.nom_type_image = \"FICHE\"" . " AND type_image.id_categorie = \"".$_GET['idcategorie']."\"" . " AND image.id_type_image = type_image.id_type_image "; } else $reqNomJaquette = "SELECT image.id_image, image.nom_image, image.url_image" . " FROM image, type_image" . " WHERE type_image.nom_type_image = \"FICHE\"" . " AND image.id_type_image = type_image.id_type_image "; $res_reqNomJaquette = mysql_query($reqNomJaquette); if (mysql_num_rows($res_reqNomJaquette) != 0) { echo "<option value=\"\">Sélectionnez une jaquette</option><br>"; echo "<option value=\"\">- - - - - - - - - - - - - - - - - - - - - -</option><br>"; echo "<option value=\"\">pas d'image</option><br>"; // boucle sur les categories while ($tabNomJaquette = mysql_fetch_array($res_reqNomJaquette)) { echo "<option value=\"../".$tabNomJaquette["url_image"]."\">".$tabNomJaquette["nom_image"]."</option><br>"; } } else { echo "<option value=\"\">Sélectionnez une jaquette</option><br>"; echo "<option value=\"\">- - - - - - - - - - - - - - - - - - - - - -</option><br>"; echo "<option value=\"\">pas d'image</option><br>"; } ?> voila. merci d'avance pour votre aide.
Partager