Envoyé par : trollchichon
Date : 21/04/2006 12:35
Bonjour, c'est avec grand interet que j'ai lu Applis Web/Exemple Php Rdf mais je ne comprend pas d'ou provient le :
http://dummy/rdf#
je suppose qu'il faut le midifier mais que mettre a la place et comment voir le resultat du fichier RDF generé par PHP (on ne le vois pas sur le code source de la page)
D'avance merci
Envoyé par : laurentj
Date : 21/04/2006 12:56
c'est un namespace inventé.. tu met ce que tu veux...
Envoyé par : trollchichon
Date : 21/04/2006 13:35
puis je le laisser parce que je fait ceci :
<?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 $result = mysql_query('SELECT * FROM sample_tbl',$cnx); $res = $supann_db->Execute("SELECT people.sn, people.givenName FROM people"); $result = $res->GetArray(); // on spécifie au navigateur le type mime des données qu'on va lui envoyé. Ici, c'est du RDF, dont text/xml. header('Content-type: text/xml'); // 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://dummy/rdf#" 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); ?>
<tree id="liste_champs_1" flex="1" flags="dont-build-content" ref="urn:data:row" datasources="create_rdf.php"> <treecols> <treecol id="nom" label="Nom" primary="true" flex="1" class="sortDirectionIndicator" sortActive="false" sortDirection="ascending" sort="rdf:http://dummy/rdf#nom"/> <splitter class="tree-splitter"/> <treecol id="prenom" label="Prénom" flex="1" class="sortDirectionIndicator" sortActive="true" sortDirection="ascending" sort="rdf:http://dummy/rdf#prenom"/> </treecols> <template> <treechildren id="treechildren1"> <treeitem uri="rdf:*"> <treerow> <treecell label="rdf:http://dummy/rdf#nom"/> <treecell label="rdf:http://dummy/rdf#prenom"/> </treerow> </treeitem> </treechildren> </template> </tree>
et rien ne s'affiche...
et comment afficher le rdf?
Envoyé par : laurentj
Date : 21/04/2006 14:20
si rien ne s'affiche, tu dois avoir un probleme quelque part dans le contenu de ton rdf. afficher createrdf.php directement dans le navigateur, pour voir ce que ça génère réèllement.
Envoyé par : trollchichon
Date : 21/04/2006 14:29
Il me retourne ceci :
<RDF:RDF> <RDF:Bag about="urn:data:row"> <RDF:li> <RDF:Description> <row:nom>unNom</row:nom> <row:prenom>UnPrenom</row:prenom> </RDF:Description> </RDF:li> </RDF:Bag> </RDF:RDF>
mais il ne met pas les elements dans l'arbre. Je pense que le probleme vient de l'espace de nommage mais je ne sais pas quoi mettre dedans...
Envoyé par : trollchichon
Date : 21/04/2006 14:35
Ca y est ca marche, j'ai mit l'adresse de mon serveur. Par contre ma méthode javascript me permettant de faire la transfert de l'arbre généré vers un second (en dur ou Rdf je ne sais pas encore) ne marche plus, comment cela se fait? (les id dont on a besoin y sont encore placé)
Envoyé par : laurentj
Date : 21/04/2006 16:23
à cause du flags="dont-build-content" qui fait que ça ne génère pas les noeuds dom. Si tu n'a pas beaucoup de données, tu peux l'enlever.
Envoyé par : trollchichon
Date : 24/04/2006 14:32
Bonjour, je reprends mon message car il y a un truc que je ne comprend pas : j'ai un tree genere par un RDF avec PHP:
<tree id="liste_champs_1" flex="1" ref="urn:data:row" datasources="create_rdf.php" > <treecols> <treecol id="nom" label="Nom" primary="true" flex="1" class="sortDirectionIndicator" sortActive="false" sortDirection="ascending" sort="rdf:http://172.25.25.105/supann#nom"/> <splitter class="tree-splitter"/> <treecol id="prenom" label="Prénom" flex="1" class="sortDirectionIndicator" sortActive="true" sortDirection="ascending" sort="rdf:http://172.25.25.105/supann#prenom"/> </treecols> <template> <treechildren id="treechildren1"> <treeitem uri="rdf:*"> <treerow tooltip="moretip"> <treecell label="rdf:http://172.25.25.105/supann#nom" value="rdf:http://172.25.25.105/supann#tooltip"/> <treecell label="rdf:http://172.25.25.105/supann#prenom"/> </treerow>...
<?php define('EOL', "\r\n"); require_once("supann_group.php"); function XML_entities($str){ return preg_replace(array("'&'", "'\"'", "'<'"), array('&', '"','<'), $str); } // Connexion à l'annuaire (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']) != ''){ $sql = 'SELECT sn, givenName FROM people WHERE cn LIKE "'.$_POST['recherche'].'%" '; if($_POST['affiliation'] != 'Affiliation' && $_POST['affiliation'] != '' && $_POST['affiliation'] !='------------------------------------------------------------------'){ $sql.= 'AND eduPersonPrimaryAffiliation="'.$_POST['affiliation'].'"'; } if($_POST['composante'] != 'Composantes' && $_POST['composante'] != '' && $_POST['composante'] !='------------------------------------------------------------------'){ $sql.= 'AND supannAffectation="'.$_POST['composante'].'"'; } echo $sql."\n"; $res = $supann_db->Execute($sql); $result = $res->GetArray(); if($res == false){ echo mysql_error($cnx); } else{ echo 'ok'; } } // 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); ?>
et le code javascript lors du clique sur le bouton :
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); 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("find-text1").value = ''; } }
voila le tout mais comment mettre l'arbre a jour. Je pense que je me fourvoye quelque part mais je ne sais où...
J'attend vos reponses . D'avance merci.
Envoyé par : laurentj
Date : 24/04/2006 16:29
comme je l'ai déja dit 100 fois sur ce forum : voir l'exemple php rdf. il y a TOUT dedans, et toutes les explications sur le wiki.. Et en plus, ton problème est cité dans la FAQ...
Envoyé par : trollchichon
Date : 25/04/2006 09:20
bon j'ai lu et relu le wiki et les messages du forum (surtout celui-ci) et je suis arrivé a la solution suivante :
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); 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); var appendRandom=Math.random(); dsUrl = "create_rdf.php" + "?" + chaine + "&ZZ=" + appendRandom ; alert(dsUrl); tree.setAttribute('datasources', ''); tree.setAttribute('datasources', dsUrl); alert("fini"); }
Alors j'ai bien l'affichage de la requete qui se fait, l'url est bonne , j'ai meme l'affichage de "fini" mais il n'y a pas de refresh sur le tree... Aidez moi svp je ne comprend pas mon erreur...
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.