Retour requête non pris en cours
Bonjour,
En m’appuyant sur les tutoriels Developpez, je suis arrivé à faire ceci:
Fonction Ajax
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 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:
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