Bonjour,

Je suis archi débutant en AJAX et j'ai repris un script qu'un ami m'avait fait.

Il permet de générer en fonction du choix d'une autre liste déroulante la liste des sous catégorie par exemple.

Voici les 2 fichiers que j'utilise :

Un en PHP qui permet de générer la liste des sous catégorie :

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
 
<?php
//on crée un fichier xml qui contiendra les sous catégorie de la catégorie déclaré
header('Content-Type: text/xml'); 
echo "<?xml version=\"1.0\"?>\n";
echo "<categorie>";
//connexion mysql
include('../../config_weesk.php');
mysql_connect("$dbhost", "$dbuser", "$dbpass") or die (mysql_error());
mysql_select_db("$dbname") or die(mysql_error());
$Select_ss_cat=$_GET['ss_cat'];
$query=mysql_query("SELECT * FROM `ss_categorie` WHERE `ss_cat_id`='$Select_ss_cat' ORDER BY ss_nom ASC");
while ($donnees=mysql_fetch_array($query))
{
        $sous_nom = strip_tags($donnees['ss_nom']);
        echo "<ss_cat id = '".$donnees['ss_id']."'>" . $sous_nom . "</ss_cat>\n";
}
echo "</categorie>";
?>
Et un autre en AJAX qui permet de créer la liste :

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
 
function test() {
	alert ("hello world");
	}
 
function update_ss_cat(id_cat, id_img)
{
    var xhr=null;
    if (window.XMLHttpRequest) { 
        xhr = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) 
    {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
    }
    //on définit l'appel de la fonction au retour serveur
    xhr.onreadystatechange = function() { alert_ajax(xhr, id_img); };
 
    //on appelle le fichier reponse.txt
    xhr.open("GET", "../jscripts/admin/reponse_sous_cat.php?ss_cat="+id_cat, true);
    xhr.send(null);
}
 
function alert_ajax(xhr, id_img)
{
	if (xhr.readyState==4){
		if (xhr.status==200){
			var docXML= xhr.responseXML;
			var items = docXML.getElementsByTagName("ss_cat");
			element='envoi_ss_cat'+id_img;
			//On supprime les éléments du passage précédent
			document.getElementById(element).options.length=0;
 
 
 
			//on fait juste une boucle sur chaque element "donnee" trouvé
			for (i=0;i<items.length;i++)
			{
				document.getElementById(element).options[i] = new Option(items.item(i).firstChild.data);
				document.getElementById(element).options[i].value = items.item(i).firstChild.id; 
			}
		}
		else{
			alert ("il y a un probleme: "+xhr.status+" Préviens Pierre");
		}
	}
}