IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ext JS / Sencha Discussion :

Affichage Xml dans un textarea


Sujet :

Ext JS / Sencha

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut Affichage Xml dans un textarea
    Bonjour à tous,
    J'ai un problème sur un textarea.
    J'ai une requête Ajax qui retourne un fichier texte et que je dois afficher dans un textarea. Si je fais le traitement avec json il y a quelques problèmes puisque les caractères spéciaux ne sont pas traités. Problèmes surtout liés au fait que json et iso ne sont pas vraiment compatibles. Du coup j'ai des érreurs du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Allées ça va piège à droite
    en 
    Allees ca va piege a droite
    On m'a alors demandée d'opter pour affichage xml. Et là je galère. Je ne sais pas comment loader mes résultats dans le textarea. Si c'est un grid, j'aurais pas eu de problèmes mais là c'est .
    Pourriez-vous m'indiquer une piste? J'ai testé (je sais pas si c'est correct) de créer un store dans le textarea mais ça ne passe pas.
    Merci d'avance pour votre aide.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut
    J'ai éssayé d'utiliser un reader

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    var pnl = {xtype:'textarea',id:'montext',name:'montext',width:'100%',height:300,reader : new Ext.data.XmlReader({
                record : 'valeurfichier',
            }, [
                {name: 'fichier', mapping:'fichier'}
            ])};
    var fiche = {title:'Fiche',layout:'form',height:'100%',items:[pnl]};
     
     
    Ext.Ajax.request({url:'php/exemple2.php?id='+id,success:function(x){
    			 var res = x.responseXML;
    			 Ext.getCmp('mintext').load(res);
    			 }});
    mais ça ne marche pas

  3. #3
    Membre expérimenté Avatar de JulienFio
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 201
    Par défaut
    Peut-être que ce post pourra t'aider

    Read-Writting Xml

  4. #4
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    Salut

    un simple html entitie coté serveur est c'est fait
    A+JYT

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut
    Bonjour,
    ok je vais tester ce que vous m'avez proposée

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut
    JulienFio,
    j'ai cette erreur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Erreur*: missing ] after element list
    Fichier Source*: http://localhost/Notes/ext/ext-all.js
    Ligne*: 7, Colonne*: 9
    Code Source*:
    ([object XMLDocument])
    en utilisant ce que tu m'as proposée. Franchement, je ne sais pas ce qui cloche ici. J'ai parcouru mon code mais pas de ] manquant

  7. #7
    Membre expérimenté Avatar de JulienFio
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 201
    Par défaut
    Je ne sais pas trop quoi répondre, c'est difficile ne connaissant pas ton code. Effectivement s'il s'agissait juste d'un crochet manquant tu le verrais dessuite avec ton éditeur de code (Netbean ? Eclipse?).

    Il reste sinon la solution proposé par sekaijin, à savoir utiliser un html entitie coté serveur

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut
    Citation Envoyé par sekaijin Voir le message
    Salut

    un simple html entitie coté serveur est c'est fait
    A+JYT
    Ca ne change rien. J'utilises déjà iso (pas de caractères spéciaux du style &,<,>,...) pour l'encodage de mes fichiers xml. Côté serveur ça marche impec mais c'est dans l'affichage que ça pose problèmes.
    Merci quand même.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut
    C'est surtout notepad que j'utilise pour vérifier mes codes.

    Voici une partie de mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    //Ceci est constitué de plusieurs textfields, datefields,...
    var infos_pnl = {layout:'column',width:'100%',layoutConfig:{columns:2},border:false,items:[dest_pnl,user_pnl]};
     
    var note_pnl = {xtype:'textarea',id:'contenu',name:'contenu',width:'100%',height:300};
     
     
    var fiche = {title:'Fiche',
    layout:'form',
    height:'100%',
    items:[infos_pnl,note_pnl],
    reader: new Ext.data.XmlReader({record:'root',fields: [{name:'nte_reference',mapping:'nte_reference'},'nte_objet','nte_redacteur','nte_approbateur','nte_dateredaction','nte_dateapprobation','nte_dateapplication','nte_remplacee','nte_reference_remplacee','nte_destinataire','nte_key','contenu']})};
     
    Ext.Ajax.request({url:'php/exemple2.php?id='+id,success:function(xhr)
    			 {
    			 var resultat = Ext.decode(xhr.responseXML);
    			 //Je pense que le problème est surtout ici
    fiche.loadData(resultat);
    			 }
    			 });
    C'est quand j'affiche les résultats que je penses qu'il y a problèmes.
    Merci d'avance

  10. #10
    Membre expérimenté Avatar de JulienFio
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 201
    Par défaut
    Peux-tu poster ton code ? si j'ai un peu de temps je regarderais si je vois d'où cette erreur peut provenir

    Edit: tu m'as devancée

  11. #11
    Membre expérimenté Avatar de JulienFio
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 201
    Par défaut
    Alors, essayes déjà comme ça:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var infos_pnl = {
    xtype: 'panel',
        layout:'column',
        width:'100%',
        layoutConfig:{columns:2},
        border:false,
        items:[dest_pnl,user_pnl]
    };
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    var fiche = {
        xtype: 'form',
        title:'Fiche',
    
    layout:'form',
    height:'100%',
    items:[infos_pnl,note_pnl],
    reader: new Ext.data.XmlReader({record:'root',fields: [{name:'nte_reference',mapping:'nte_reference'},'nte_objet','nte_redacteur','nte_approbateur','nte_dateredaction','nte_dateapprobation','nte_dateapplication','nte_remplacee','nte_reference_remplacee','nte_destinataire','nte_key','contenu']})};
     
    Ext.Ajax.request({url:'php/exemple2.php?id='+id,success:function(xhr)
    			 {
    			 var resultat = Ext.decode(xhr.responseXML);
    fiche.loadData(resultat);
    			 }
    			 });
    Edit:
    et ceci donne quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    var fiche = {
        title:'Fiche',
        layout:'form',
        height:'100%',
        items:[infos_pnl,note_pnl],
        reader: new Ext.data.XmlReader({
            record:'root',
            fields: [{
                name:'nte_reference',
                mapping:'nte_reference'
            },'nte_objet','nte_redacteur','nte_approbateur','nte_dateredaction','nte_dateapprobation','nte_dateapplication','nte_remplacee','nte_reference_remplacee','nte_destinataire','nte_key','contenu']
        })
    };
     
    fiche.on('afterrender', function(){
        fiche.getForm().load({
                                url:'ton fichier xml',
                                method:'GET',
                                success:function(form, action){
                                //any additional handling 
                                },
                                failure:function(form, action){
                                //some msg here
                                } ,
                                scope:this
                            });
    })

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut
    Citation Envoyé par JulienFio Voir le message
    et ceci donne quoi ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    var fiche = {
        title:'Fiche',
        layout:'form',
        height:'100%',
        items:[infos_pnl,note_pnl],
        reader: new Ext.data.XmlReader({
            record:'root',
            fields: [{
                name:'nte_reference',
                mapping:'nte_reference'
            },'nte_objet','nte_redacteur','nte_approbateur','nte_dateredaction','nte_dateapprobation','nte_dateapplication','nte_remplacee','nte_reference_remplacee','nte_destinataire','nte_key','contenu']
        })
    };
     
    fiche.on('afterrender', function(){
        fiche.getForm().load({
                                url:'ton fichier xml',
                                method:'GET',
                                success:function(form, action){
                                //any additional handling 
                                },
                                failure:function(form, action){
                                //some msg here
                                } ,
                                scope:this
                            });
    })
    il me renvoit cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Erreur*: fiche.on is not a function
    Fichier Source*: http://localhost/Notes/js/notes.js
    Ligne*: 527

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    var fiche = {
        title:'Fiche',
        height:'100%',
        items:[infos_pnl,note_pnl]
    };
     
     
    var tabpane = new Ext.TabPanel({activeTab:0,items:[liste,fiche],defaults:{autoHeight:true, bodyStyle:'padding:10px'}});
     
    var form = {layout:'form',width:'100%',height:'100%',border:false,items:[tabpane]};
     
    var corps = {region:'center',title:'Notes de service',items:[form]};
     
    var content = new Ext.FormPanel({region:'center',layout:'border',items:[menu,corps],
        reader: new Ext.data.XmlReader({
            record:'root',
            fields: [{
                name:'nte_reference',
                mapping:'nte_reference'
            },'nte_objet','nte_redacteur','nte_approbateur','nte_dateredaction','nte_dateapprobation','nte_dateapplication','nte_remplacee','nte_reference_remplacee','nte_destinataire','nte_key','contenu']});
    J'avais omis de le poster précédemment.
    J'ai fait un content.getForm(),
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    content.getForm().load({url:'php/exemple2.php?id='+id});
    mais il y a l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    content.getForm is not a function

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    47
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Madagascar

    Informations forums :
    Inscription : Novembre 2010
    Messages : 47
    Par défaut
    Vu que j'ai bloqué dessus depuis quelques temps, j'ai finalement opté pour du json avec quelques changements dans le fichier php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $contenu = str_replace("<br />", " ",$contenu);
    			   $contenu = str_replace("é", "&eacute;",$contenu);
    			   $contenu = str_replace("è", "&egrave;",$contenu);
    			   $contenu = str_replace("ç", "&ccedil;",$contenu);
    			   $contenu = str_replace("à", "&agrave;",$contenu);
    			   $contenu = str_replace("ê", "&ecirc;",$contenu);
    			   $contenu = str_replace("ù", "&ugrave;",$contenu);
    et dans le fichier js pour le résultat dans le textarea

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    resultat.fichier = resultat.fichier.replace(/&eacute;/gi,"é");
    			 resultat.fichier = resultat.fichier.replace(/&egrave;/gi,"è");
    			 resultat.fichier = resultat.fichier.replace(/&ccedil;/gi,"ç");
    			 resultat.fichier = resultat.fichier.replace(/&agrave;/gi,"à");
    			 resultat.fichier = resultat.fichier.replace(/&ecirc;/gi,"ê");
    			 resultat.fichier = resultat.fichier.replace(/&ugrave;/gi,"ù");

  15. #15
    Membre éclairé
    Homme Profil pro
    développeur
    Inscrit en
    Octobre 2004
    Messages
    481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : développeur
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Octobre 2004
    Messages : 481
    Par défaut
    Il suffit de faire côté php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu = utf8_encode($contenu);
    pour les caractères accentués.

    et pour les retours à la ligne, voir ces deux post :
    http://www.sencha.com/forum/showthre...ea-gt-New-Line
    http://www.sencha.com/forum/showthre...tring-constant!!

    Rien de particulier à faire côté Extjs, à part récupérer le json arrivé du php.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage d'un contenu XML dans une zone de texte (TextArea)
    Par ahlemrhayem dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 12/08/2014, 10h22
  2. Mettre du XML dans un textarea
    Par noussa_nouha dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 30/10/2008, 15h17
  3. Problème affichage XML dans navigateur
    Par speedev dans le forum Langage
    Réponses: 11
    Dernier message: 19/03/2007, 16h26
  4. Réponses: 2
    Dernier message: 02/02/2006, 22h38
  5. Réponses: 13
    Dernier message: 14/06/2004, 15h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo