[AJAX] Récupération de données
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:
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:
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");
}
}
} |