Bonjour,
En m’appuyant sur les tutoriels Developpez, je suis arrivé à faire ceci:
Fonction Ajax
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
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 }
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.
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 */ ?>
Ca ne fonctionne pas.
Je suis bloqué. Quelqu'un serait-il ce qui me manque?
Cordialement,
Vandman
Partager