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 :
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 <?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>"; ?>
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"); } } }
Partager