Projet d'apllication web avec XUL, PHP, AJAX et XML

Vous vous penchez sur le développement d'applications ou d'extensions pour Mozilla ? C'est alors vers ce forum que se dirigeront naturellement vos requêtes...
Inarius
Arias
Messages : 2
Inscription : 29 oct. 2009, 19:26

Projet d'apllication web avec XUL, PHP, AJAX et XML

Message par Inarius »

Bonjour à tous,
J'ai actuelement un projet (non profesionnel) de réaliser une application web qui se base sur plusieurs langage et protocoles que sont XUL, PHP, AJAX et XML.
J'ai déjà fait une partie de l'interface avec XUL mais la je suis bloqué sur un problême qui me paraît assez compliqué ^^

Donc voila le problême : j'ai un fichier XML qui est la "copie" d'une BDD (mais c pas la le prob...) Donc je récupère ce XML avec une requete AJAX. Ensuite je voudrais transformer ce fichier XML en tableau sur l'interface de l'utilisateur. Mais la est le problême, je souhaite utiliser un arbre (car pratique, rapide et beau ^^) mais comme je ne voudrais pas utiliser de RDF pour question de portatibilité avec les autres languages, comment transformer ce XML en arbre?

J'essaye actuelement de trouver en utilisant nsITreeView et voila ce que j'ai pour l'instant:

code Javascript/nsITreeView :

Code : Tout sélectionner

var tableauAcheteur = {
    rowCount : function() { return getXmlAcheteur().getElementsByTagName('numAcheteur').length; },
    getCellText : function(row,column) {
        if (column == 'Numéro de l\'acheteur')
            return getXmlAcheteur().getElementsByTagName('numAcheteur')[row].firstChild.nodeValue;
        else if (column == 'Nom')
            return getXmlAcheteur().getElementsByTagName('nom')[row].firstChild.nodeValue;
        else if (column == 'Prénom')
            return getXmlAcheteur().getElementsByTagName('prenom')[row].firstChild.nodeValue;
        else if (column == 'Adresse')
            return getXmlAcheteur().getElementsByTagName('adresse')[row].firstChild.nodeValue;
        else if (column == 'Code postal')
            return getXmlAcheteur().getElementsByTagName('codePostal')[row].firstChild.nodeValue;
        else if (column == 'Ville')
            return getXmlAcheteur().getElementsByTagName('ville')[row].firstChild.nodeValue;
        else if (column == 'Facture (oui/non)') {
            if (getXmlAcheteur().getElementsByTagName('facture')[row].firstChild.nodeValue == 0)
                return 'non';
            else
                return 'oui';
        } else
            return '';
    },
    setTree: function(treebox){ this.treebox = treebox; },
    isContainer: function(row){ return false; },
    isSeparator: function(row){ return false; },
    isSorted: function(row){ return false; },
    getLevel: function(row){ return 0; },
    getImageSrc: function(row,col){ return null; },
    getRowProperties: function(row,props){},
    getCellProperties: function(row,col,props){},
    getColumnProperties: function(colid,col,props){}
};

function afficherAcheteur() {
    document.getElementById('tableauAcheteur').view = tableauAcheteur ;
}
La fonction afficherAcheteur() est appelé au clique sur un bouton

et voici une partie de mon code XUL :

Code : Tout sélectionner

<hbox id="boiteTableauAcheteur" flex="1">
<tree id="tableauAcheteur">
       <treecols>
             <treecol label="Numéro de l'acheteur"/>
             <treecol label="Nom"/>
             <treecol label="Prénom"/>
             <treecol label="Adresse"/>                                    
             <treecol label="Code postal"/>                                    
             <treecol label="Ville"/>                                    
             <treecol label="Facture (oui/non)"/>
        </treecols>
        <treechildren />
</tree>
</hbox>
et enfin voici un exemple du fichier XML :

Code : Tout sélectionner

<?xml version="1.0" encoding="UTF-8"?>
<vente>
    <acheteur>
        <numAcheteur>1</numAcheteur>
        <nom>dgd</nom>
        <prenom>sg</prenom>
        <adresse>sddg</adresse>
        <codePostal>231</codePostal>
        <ville>sg</ville>
        <facture>1</facture>
    </acheteur>
    <acheteur>
        <numAcheteur>2</numAcheteur>
        <nom>ddg</nom>
        <prenom>sg</prenom>
        <adresse>srg</adresse>
        <codePostal>65</codePostal>
        <ville>sdff</ville>
        <facture>0</facture>
    </acheteur>
    <acheteur>
        <numAcheteur>3</numAcheteur>
        <nom>dgd</nom>
        <prenom>sg</prenom>
        <adresse>sddg</adresse>
        <codePostal>231</codePostal>
        <ville>sg</ville>
        <facture>1</facture>
    </acheteur>
</vente>
Mais comme dit, si je vient ici c'est que ca marche pas. En l'occurence, ici rien ne se passe, j'ai beau cliquer sur le bouton, l'arbre ne se remplit pas et dans firebug, le code HTML/XUL ne change pas d'un poil...

Merci d'avance pour votre aide,
Inarius
martin
Varan
Messages : 1074
Inscription : 21 janv. 2004, 16:23

Re: Projet d'apllication web avec XUL, PHP, AJAX et XML

Message par martin »

Tu ne peux pas utiliser de vue personnalisée (custom view) sur un tree en xul si tu es en remote (application distante, sur un serveur)...

Par contre, comme tu parles de rdf, tu peux aussi utiliser les templates xul avec des fichiers xml.

Xulfr et son forum sera plus approprié pour ce genre de problématique ;) .
Inarius
Arias
Messages : 2
Inscription : 29 oct. 2009, 19:26

Re: Projet d'apllication web avec XUL, PHP, AJAX et XML

Message par Inarius »

Ok merci :)
C'est la solution que j'ai choisit :) et aussi grâce a XULFr ca marche maintenant ^^ Et ca marche même plutôt bien :)
Mais est ce que ca marchera toujours aussi bien avec jusqu'à 500 enregistrements? :)
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 2 invités