Bonjour,

En m’appuyant sur les tutoriels Developpez, je suis arrivé à faire ceci:

Fonction Ajax
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
// Node cleaner
function go(c){
	if(!c.data.replace(/\s/g,''))
		c.parentNode.removeChild(c);
}
 
function clean(d){
	var bal=d.getElementsByTagName('*');
 
	for(i=0;i<bal.length;i++){
		a=bal[i].previousSibling;
		if(a && a.nodeType==3)
			go(a);
		b=bal[i].nextSibling;
		if(b && b.nodeType==3)
			go(b);
	}
	return d;
}
 
function getXhr()
{
	var xhr = null; 
	if(window.XMLHttpRequest) // Firefox et autres
	   xhr = new XMLHttpRequest(); 
	else if(window.ActiveXObject){ // Internet Explorer 
	   try {
	            xhr = new ActiveXObject("Msxml2.XMLHTTP");
	        } catch (e) {
	            xhr = new ActiveXObject("Microsoft.XMLHTTP");
	        }
	}
	else { // XMLHttpRequest non supporté par le navigateur 
	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
	   xhr = false; 
	} 
	return xhr;
}
 
function ListePerimetre(Type_groupe,Type_ar)
{
	var value = "";
	var titi = "";
	option = document.createElement("option");
	var xhr = getXhr();
	// On défini ce qu'on va faire quand on aura la réponse
	xhr.onreadystatechange = function()
	{
		// On ne fait quelque chose que si on a tout reçu et que le serveur est ok
		if(xhr.readyState == 4 && xhr.status == 200)
		{
			reponse = clean(xhr.responseXML.documentElement);
			value = reponse.getElementsByTagName("id");
			value = value.getAttribute("value");
			option.setAttribute("value", value);
			option.text = reponse.getElementsByTagName("texte");
		}
	}
	xhr.open("POST","./php/ListeCategorie.php",true);
	xhr.send("Type_groupe="+Type_groupe&"Type_ar="+Type_ar);
	return option
}
Fichier PHP permettant de générer le XML:
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
// nomdb
global $db;
$db = new PDO($dsn, $user, $pass);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
 
 
if (isset($_POST["Type_groupe"]) && empty($_POST["Type_ar"]))
{
	$Where= "WHERE type_groupe = '".$_POST["Type_groupe"]."'";
}
else if (empty($_POST["Type_groupe"]) && isset($_POST["Type_ar"]))
{
	$Where= "WHERE Type_ar = '".$_POST["Type_ar"]."'";
}
else if (isset($_POST["Type_groupe"]) && isset($_POST["Type_ar"]))
{
	$Where= "WHERE type_groupe = '".$_POST["Type_groupe"]."' AND Type_ar = '".$_POST["Type_ar"]."'";
}
else
{
	$Where= "";
}
 
$SqlQry= "select * from param.groupe_code ".$Where." ORDER BY intitule_groupe_code;";
$qry = $db->prepare($SqlQry); 
$qry->execute();
//$numlignes = $qry->rowCount();
//$numcol = $qry->columnCount();
$buffer  = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$buffer .= "<perimetre>\n";
$buffer .= "\t<select>\n";
while ($row=$qry->fetch())
{
	$buffer .= "\t\t<id value=\"".$row['id_groupe_code']."\"><texte>".$row['intitule_groupe_code']."</texte>\n</id>\n";
 
}
$buffer .= "\t</select>\n";
$buffer .= "</perimetre>\n";
$qry->closeCursor();
 
header('Content-Type: text/xml');
echo $buffer;
 
/* CLOTURE DES CONNEXIONS DB */
 
?>
En clair, j'ai besoin de récupérer l'id_groupe_code et l'intitule_groupe_code et dans la table groupe_code pour afficher les données dans une liste déroulante de mon formulaire.
Ca ne fonctionne pas.
Je suis bloqué. Quelqu'un serait-il ce qui me manque?
Cordialement,
Vandman