Forums : Xul, Xbl, JS...

Aller à la discussion :  Plus récente Plus ancienne

# RDF/PHP question en complement du WIKI

Envoyé par : NewPxul

Date : 19/09/2005 10:33

Bonjour,

Dans mon application en XUL, je cree le fichier RDF de mon arbre par une requete sur la base de donnees.

var dsUrl=uriRDF+"queryRDF.php"+"?param1="+escape(val1)+"&param2="+escape(val2)+ ...

Sur ma plate-forme (Mozilla 1.7.6) cela fonctionne bien avec peu de parametres, mais lorsque l'URL est tres longue cela ne fonctionne plus. Alors je suis passe en methode "POST" avec la fonction XMLHttpRequest();

Ainsi je peux plus facilement passer au script PHP mes nombreux parametres, et j'ai un code de retour lorsqu'il y a un probleme avec le serveur PHP. J'ai maintenant une fonction:

function queryTreeMethodePOST(){
                                                                                                                        
   var val1 = document.getElementById("param1").value;
   var val2 = document.getElementById("param2").value;
   var val3 = document.getElementById("param3").value;
   ....
   ....
                                                                                                                        
   pop1 = new XMLHttpRequest();
   pop1.onload = null;
   pop1.open("POST","http://.../queryRDF.php", false);
   pop1.setRequestHeader("Content-type","application/x-www-form-urlencoded");
   REQpop1 = "param1="+escape(val1)+"&pama2="+escape(val2)+"&param3="+escape(val3)+.... ;
   REQpop2 = "&param10="+escape(val10)+"&param11="+escape(val11)+.......;
   REQpopTOTAL = reqpop1 + reqpop2 ;
   
   pop1.send(REQpopTOTAL);
                                                                                                                        
   if ( pop1.status != "200" ) {
     alert(" error on REQUEST status = " + pop1.status);
   }else{
  
     dsUrl = pop1.responseText;
    
   }
                                                                                                                        
   tree.setAttribute('datasources', '');
   tree.setAttribute('datasources', dsUrl + "?z="+ Math.random());                                      
   dsUrl = "http://..../initRDF.php";
                                                                                                                        
   document.getElementById("param1").value = vide;
   document.getElementById("param2").value = vide;
   document.getElementById("param3").value = vide;
   ....
   ....
                                                                                                                        
}

La, il y a qqch que je n'ai pas compris dans le WIKI parceque l'assignation dsUrl = pop1.responseText; ne fonctionne pas, mon arbre n'ai pas mis a jour. Poutant j'ai bien verifie la syntaxe du contenu de la reponse, avec une fonction: alert(pop1.responseText); ou un dump. Ce contenu RDF est bien strictement identique a celui que je recupere avec la syntaxe precedente: dsUrl=uriRDF+"queryRDF.php"+"?param1="+escape(val1)+ ..

Avez-vous une idee de ce qui ne va pas dans ma fonction: queryTreeMethodePOST()

Merci.

# Re: RDF/PHP question en complement du WIKI

Envoyé par : NewPxul

Date : 19/09/2005 19:00

J'ai trouvé en partie la raison de mes problèmes en méthode GET, a la place de dsUrl=uriRDF+"queryRDF.php"+"?param1="+escape(val1)+"&param2="+escape(val2)+ ... il faut coder :

 dsUrl = uriRDF+ "queryRDF.php" + "?" + escape(param1) + "=" + escape(val1) + "&" + escape(param2) + "=" + escape(val2) + "&" + ...

Par contre je n'ai toujours pas trouvé comment on affecte la source de données au format RDF que l'on vient préalablement de stocker dans une variable: RDFcontenu = pop1.responseText; Cela pourrait être un ajout au contenu du WIKI Applis Web/Request --> Objet XMLHttpRequest par exemple.

Merci

# Re: RDF/PHP question en complement du WIKI

Envoyé par : NewPxul

Date : 20/09/2005 15:53

Je recherche toujours un peu d'aide sur la mise à jour de mon arbre ... la fonction JavaScript suivante fonctionne bien temps qu'il n'y a pas trop de critères de recherche, par contre je n'obtiens plus d'affichage des que je mets tous les critères en place ???

function queryTree(){
                                                                                                                        
   var uriRDF = "http://localhost:80/testsite/query.php"
   var val1 = document.getElementById("mini").value;
   var val2 = document.getElementById("maxi").value;
   var val3 = document.getElementById("FieldSite").value;
   var val4 = document.getElementById("FieldModule").value;
   var val5 = document.getElementById("FieldReqstBy").value;
   var val6 = document.getElementById("FieldStatus").value;
   var val7 = document.getElementById("FieldSoft").value;
   var val8 = document.getElementById("FieldProcBy").value;
   var val9 = document.getElementById("FieldDescShort").value;
   var reqpop1 = "vide";
   var reqpop2 = "vide";
   var reqpop3 = "vide";
   var TOTreqpop = "vide";
  reqpop1 = escape("mini") + "=" + escape(val1) + "&" + escape("maxi") + "=" + escape(val2) + "&" + escape("FieldSite") + "=" + escape(val3) + "&" + escape("FieldModule") + "=" + escape(val4);
   reqpop2 = "&" + escape("FieldReqstBy") + "=" + escape(val5) + "&" + escape("FieldStatus") + "=" + escape(val6) + "&" + escape("FieldSoft") + "=" + escape(val7);
   reqpop3 = "&" + escape("FieldProcBy") + "=" + escape(val8) + "&" + escape("FieldDescShort") + "=" + escape(val9);
                                                                                                                        
   TOTreqpop = reqpop1 + reqpop2 + reqpop3;
    alert(uriRDF + "?" + TOTreqpop);
    dsUrl = uriRDF + "?" + TOTreqpop;
    tree.setAttribute('datasources', '');
    tree.setAttribute('datasources', dsUrl + "?z="+ Math.random());
                                                                                                                        
   document.getElementById("mini").value = '17000';
   document.getElementById("maxi").value = '90000';
   document.getElementById("FieldSite").value = '';
   document.getElementById("FieldModule").value = '';
   document.getElementById("FieldReqstBy").value = '';
   document.getElementById("FieldStatus").value = '';
   document.getElementById("FieldSoft").value = '';
   document.getElementById("FieldProcBy").value = '';
   document.getElementById("FieldDescShort").value = '';
                                                                                                                        
   dsUrl =  "http://localhost:80/testsite/query.php?mini=15000&maxi=90000";
}

Pourtant, le script http://localhost:80/testsite/query.php fonctionne bien car c'est toujours le même script que j'utilise, quelque soit le nombre de paramètres passés par la fonction Javascript. Et la valeur de la variable dsUrl est correcte aussi, je la vérifie avec les fonctions d'alerte.

Comment est-il possible de "dumper" le contenu de la ressouce associée à l'arbre courant après l'exécution des fonctions:

  tree.setAttribute('datasources', '');
  tree.setAttribute('datasources', dsUrl + "?z="+ Math.random());         

merci

# Re: RDF/PHP question en complement du WIKI

Envoyé par : NewPxul

Date : 20/09/2005 16:31

J'ai trouvé, les copains, et je vous adresse toutes mes excuses pour avoir alimenté ce forum avec mes erreurs de code, en fait, à la place d'utiliser la fonction "refresh" suivante:

tree.setAttribute('datasources', '');
tree.setAttribute('datasources', dsUrl + "?z="+ Math.random());  

il vaut mieux utiliser le code suivant:

var appendRandom=Math.random();
dsUrl = uriRDF + "?" + TOTreqpop + "&ZZ=" + appendRandom ;
tree.setAttribute('datasources', '');
tree.setAttribute('datasources', dsUrl);

et tout cela est déjà bien expliqué dans la partie: XUL RDF et le cache !!!

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.