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



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&deg; ".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&eacute;gorie de la fiche:</label>
  <select name="categorie" id="categorie" onChange="sendData('idcategorie='+document.formGet.categorie.value,'GET')">
      <option value="">S&eacute;lectionnez une cat&eacute;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&eacute;lectionnez une image</option>
      <option value="">- - - - - - - - - - - - - - - - - - - - - - -</option>
       <option value="">pas d'image</option>
 </select>
 
<br />
</form>
</body>
</html>
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
 
<?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&eacute;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&eacute;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.
[/code]