Envoyé par : trollchichon
Date : 25/04/2006 11:30
Y'a personne pour m'aider alors...
Envoyé par : laurentj
Date : 25/04/2006 12:28
désolé, je ne vois pas... malformation du RDF ? url mal formée ? je ne sais pas..
Tu remarquera que dans l'exemple de xulfr, datasources="rdf:null". cela a peut etre une conséquence..
Envoyé par : trollchichon
Date : 25/04/2006 12:35
ok merci mais la je galère réellement, j'ai passer la matiné dessus et je n'y arrive pas... Alors si quiconque à une idée meme farfenue je suis preneur.
Si vous avez besoin de plus de code ou d'info faites le moi savoir
Envoyé par : alexp
Date : 25/04/2006 13:01
Salut,
Pour moi l'erreur se trouve dans PHP, et il y'a aussi des trucs inutiles dans ton javascript!
function chargerArbre(tr){ var tree = document.getElementById(tr); var dsUrl = 'create_rdf.php'; var val1=document.getElementById("recherche2").value; var val2=document.getElementById("searchtype3").value; var val3=document.getElementById("searchtype4").value; var chaine = escape("recherche")+"="+escape(val1)+"&"+escape("affiliation")+"="+escape(val3)+"&"+escape("composante")+"="+escape(val2);
// partie inutile (ceci ne fait rien, celà affiche juste le RDF généré et c'est tout) p = new XMLHttpRequest(); p.onload = null; p.open("POST","create_rdf.php", false); p.setRequestHeader("Content-type","application/x-www-form-urlencoded"); p.send(chaine); status = p.status; if ( status != "200" ) { alert("arg ! mauvaise réponse http ("+ status +")"); } else { alert(" effectué"); document.getElementById("recherche2").value = ' '; } alert(p.responseText); // fin partie inutile.
// partie utile : var appendRandom=Math.random(); dsUrl = "create_rdf.php" + "?" + chaine + "&ZZ=" + appendRandom ; alert(dsUrl); tree.setAttribute('datasources', ''); tree.setAttribute('datasources', dsUrl); // fin partie utile. alert("fini"); }
Donc déjà toute la partie xmlhttprequest ne sert à rien puisque tu n'utilises pas p.responseText ou p.responseXML ...
Seule la deuxième partie avec setAttribute est utile.
Ensuite l'erreur se situe au niveau du PHP car effectivement les variables : affiliation, composante, ... seront envoyées en mode POST lors du xmlhttprequest, mais ce sera en mode GET avec le setAttribute !
Envoyé par : trollchichon
Date : 25/04/2006 13:10
alors comment faire pour le faire en post?
voici le source php :
<?php define('EOL', "\r\n"); require_once("supann_group.php"); function XML_entities($str){ return preg_replace(array("'&'", "'\"'", "'<'"), array('&', '"','<'), $str); } // Connexion à l'annuaire $supann_db =& NewADOConnection(DSN_SUPANN_DB) or die("Connexion impossible à la base supann"); $res = $supann_db->Execute("SET NAMES 'utf8'"); // execution de la requète SQL $supann_db =& NewADOConnection(DSN_SUPANN_DB) or die("Connexion impossible à la base supann"); if(isset($_POST['recherche']) && trim($_POST['recherche']) != ''){ if($_POST['composante'] != 'Composantes' && $_POST['composante'] != '' && $_POST['composante'] !='------------------------------------------------------------------'){ $sql = 'SELECT sn, givenName FROM people, composantes_services WHERE cn LIKE "'.$_POST['recherche'].'%" '; $sql.= 'AND composantes_services.ref = "'.$_POST['composante'].'"'; } else{ $sql = 'SELECT sn, givenName FROM people WHERE cn LIKE "'.$_POST['recherche'].'%" '; } if($_POST['affiliation'] != 'Affiliation' && $_POST['affiliation'] != '' && $_POST['affiliation'] !='------------------------------------------------------------------'){ $sql.= 'AND eduPersonPrimaryAffiliation LIKE "'.$_POST['affiliation'].'"'; } $res = $supann_db->Execute($sql); $result = $res->GetArray(); if($res == false){ echo mysql_error($cnx); } else{ // on commence à lui envoyer le début du fichier RDF echo('<?xml version="1.0" encoding="ISO-8859-1"?>'.EOL); echo('<RDF:RDF xmlns:RDF="http://www.w3.org/1999/02/22-rdf-syntax-ns#"'.EOL); echo(' xmlns:row="http://172.25.25.105/supann#" xmlns:NC="http://home.netscape.com/NC-rdf#">'.EOL); echo('<RDF:Bag about="urn:data:row">'.EOL); // boucle de récupération des enregistrements de la requête et génération du contenu RDF foreach($result as $row){ echo('<RDF:li>'.EOL); echo('<RDF:Description>'); // parseType = indication pour le type des données, utile pour le trie sur la colonne echo('<row:nom>'.XML_entities($row['sn']).'</row:nom>'); echo('<row:prenom>'.XML_entities($row['givenName']).'</row:prenom>'); echo('</RDF:Description>'.EOL); echo('</RDF:li>'.EOL); } // fin du fichier RDF echo('</RDF:Bag>'.EOL); echo('</RDF:RDF>'.EOL); } } ?>
Envoyé par : laurentj
Date : 25/04/2006 13:11
ah oui bien vu alexp
trollchichon : je confirme, dans ton script PHP tu tente de récupérer tes données dans le $_POST, alors qu'il faudrait les récupérer dans $_GET puisqu'elle sont situées dans l'url
alexp : je pense qu'il a fait ce bout de code avec xmlhttprequest pour tester qu'il recevait bien quelque chose. Mais bon, il n'a pas besoin de faire ça, il suffit simplement de taper l'url de create_rdf.php directement dans son navigateur pour s'en rendre compte ;-)
Envoyé par : laurentj
Date : 25/04/2006 13:12
alors comment faire pour le faire en post?
tu ne fais pas. tu modifie juste ton script php correctement.
Envoyé par : trollchichon
Date : 25/04/2006 13:13
il suffit juste de modifier le $_POST en $_GET alors?
Envoyé par : trollchichon
Date : 25/04/2006 13:17
je viens de le faire et ca ne marche pas!!! suis-je stupide??
Qd j'appelle create_rdf.php et que je passe les parametres dans l'url (en get) et bien ca marche donc je pense que le soucis doit provenir de l'arbre ou du rdf... non?
Est ce que l'affichage doit me produire un code DRF ou une suite de nom-prenom sur la fonction create_rdf.php? parce que j'ai une suite de nom et pas un fichier rdf...
Il n'est plus possible de poster des messages dans ce forum.
Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.
Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™
sont des marques de la fondation Mozilla.