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 :

Textfield et JsonP


Sujet :

Ext JS / Sencha

  1. #1
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    octobre 2012
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2012
    Messages : 304
    Points : 64
    Points
    64
    Par défaut Textfield et JsonP
    Bonjour
    J'ai un service web qui me retourne des valeurs en Json et ca fonctionne.
    Je souhaite afficher ces valeurs dans un textfield, par contre la je bloque sur la façon de faire ?
    Help me please ...

  2. #2
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    juin 2010
    Messages
    3 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : juin 2010
    Messages : 3 085
    Points : 6 712
    Points
    6 712
    Par défaut
    Je ne sais pas où tu bloques. Tu as essayé quelque chose déjà ? Voilà comment je ferais :
    1. une requête ajax pour récupérer le JSON ;
    2. je récupère une référence sur le textfield s’il existe déjà, sinon je le crée ;
    3. rapidement, je formate le JSON pour le rendre plus lisible si besoin ;
    4. je mets à jour la value du textfield.

    Montre-nous ce que tu as déjà essayé.
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  3. #3
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    octobre 2012
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2012
    Messages : 304
    Points : 64
    Points
    64
    Par défaut OK Merci
    Alors pour ce que j'ai fait
    Le service web est ok, je récupère des données quand j’exécute le service web.
    Le store et le model sont ok du coté web
    Donc j'ai réalisé, la vue, le controleur , le store et le model
    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    onScanSN: function(button, e, eOpts) {
     
            var SerialNumber = Ext.getCmp("NameID").getValue();
     
            if(SerialNumber !== null)
            {
                if (SerialNumber.length == 6  || SerialNumber.length == 7  || SerialNumber.length == 8  )
                {
     
                    var URL = 'http://v010048/WebSetup_WS_TAO/Service1.asmx/Liste_Machine_Accord_Poste_Destruction_Scan?callback=Ext.data.JsonP.callback1';
     
                    Ext.data.JsonP.request({
     
     
                        url : URL,
                        method: 'GET',
                        params: { NS_Retour : SerialNumber},
                        timeout : 5000,
                        disableCaching: false,
                        callbackKey: 'callback',
                        callback: 'callback',
                        scope: this,
                        //Le web service est en mode sans Echec, il repond à la requette qu'on lui adresse
                        success: function(response){
                             // Si la reponse du Webservice est OK, cad qu'il existe une ou plusieurs correspondances   
                            if (response[1].Value == "PASS" ) 
                            {
     
                                Ext.Msg.show({
                                    title: 'Neopost Industrie',
                                    html: '<H1><Center>Numéro de série = "'+SerialNumber+'"</H1>',
                                    message: 'La machine correspond Ã* un accord Poste, Vous allez déclencher le processus de destruction.',
                                    width: 300,
                                    closable : false,
                                    buttons: [
                                    {text: 'Retour Scan', itemId: 'yes', ui: 'action'},
                                    {text: 'Valider Destruction', itemId: 'no', ui: 'decline'}
                                    ],
                                    fn: function (itemId)
                                    {
                                        if('yes'==itemId)
                                        {
                                            Ext.getCmp("NameID").setValue("Scannez vôtre Numéro de série");
                                        }
                                        else
                                        {
                                            //- TRAITEMENT ET RETOURS DATA ---------------------------------------------------------------------//
     
                                            Ext.Viewport.add({
                                                xtype: 'resultatScan' ,
                                                items: [
                                                // --------------------------------//
                                                {
                                                    xtype: 'label',
                                                    style: 'font-size: 14px',
                                                    html: "<H1><center>Opération de destruction autorisé, Veuillez choisir votre carcasse svp ... !</H1>",
                                                    padding: '0 0 0 0'
                                                },
                                                // -----------------------------------------------------------------//
                                                // Remplissage de la liste déroulante par le resultat du serviceWeb //
                                                // -----------------------------------------------------------------//
                                                {
                                                    xtype: 'selectfield',
                                                    flex: 1,
                                                    itemId: 'ListeSN',
                                                    maxHeight: 50,
                                                    label: 'Liste de(s) Carcasse(s)',
                                                    Store: LoginApp.store.ListeMachineScan,
                                                    options: [
                                                    {
                                                        text: 'Veuillez choisir votre Carcasse ... !',
                                                        value: 'Texte'
                                                    },
                                                    {
                                                        text: 'SN : '+SerialNumber,
                                                        value: 'Var1'
                                                    },
     
                                                    ],
                                                    usePicker: false
                                                },
                                                // -----------------------------------------------------------------//
                                                //                              FIN                                 //
                                                // -----------------------------------------------------------------//
                                                {
                                                    xtype: 'container',
                                                    layout: {
                                                        type: 'hbox',
                                                        align: 'center',
                                                        pack: 'center'
                                                    },
                                                    // ***************************************** //
                                                    items: [
                                                        {
                                                        xtype: 'toolbar',
                                                        items: [
                                                            {
                                                                xtype: 'spacer'
                                                            },
                                                            {
                                                                xtype: 'button',
                                                            handler: function(button, e)
                                                            {
                                                                this.up('panel').close();
                                                            },
                                                                ui: 'action',
                                                                width: 100,
                                                                text: 'Annuler'
                                                            }
                                                        ]
                                                    },
                                                    {
                                                        xtype: 'button',
                                                        handler: function(button, e)
                                                        {
                                                            this.up('panel').close();
                                                        },
                                                        ui: 'decline',
                                                        width: 160,
                                                        text: 'Sauvegarder'
                                                    }
                                                    ]
                                                }
                                                // --------------------------------//
                                                ],
                                                scope   : this,
                                            });
     
     
     
                                            //-------------------------------------------------------------------------------------------------//
     
                                        }
     
     
                                    }
                                });
     
     
                            }
                            // La reponse du webservic est Non, cad il existe pas de correspondance
                            else 
                            {
                                Ext.Msg.alert("Neopost Industrie", "Il n'existe aucune correspondance pour cette machine SN = "+SerialNumber+", Aucun accord de la Part de la Poste pour sa destruction. Merci ", this);
                            }
                            Ext.getCmp("NameID").setValue("Scannez vôtre Numéro de série");
                        },
                        // Le webservice est en mode Echec    
                        failure: function(response){
                            Ext.Msg.alert("Neopost Industrie", "Le service WS-TEO est actuellement injoignable, Merci de réessayer ultérieurement", this);
                        }
     
                    });
     
     
                    Ext.getCmp("NameID").setValue("Scannez vôtre Numéro de série");
                }
     
                else
     
                {
                    Ext.Msg.alert("Neopost Industrie", "Le numéro scanné est incorrect,  NS Attendu = 6, 7 ou 8 Caractéres", this);
                    Ext.getCmp("NameID").setValue("Scannez vôtre Numéro de série");
     
                }
            }
     
            else
     
            {
                // Envoi d'alerte au cas ou pas de saisie
                Ext.Msg.alert("Neopost Industrie", "Aucunes Informations Transmise, veuillez scanner vôtre machine svp ...!", this);
                Ext.getCmp("NameID").setValue("Scannez vôtre Numéro de série");
            }
     
            //*-------------------------------------------------------------------------------------------------------------------------------------------//*
        }

  4. #4
    Expert éminent
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    juin 2010
    Messages
    3 085
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : juin 2010
    Messages : 3 085
    Points : 6 712
    Points
    6 712
    Par défaut
    Comme je te l’ai dit en privé, je ne connais pas bien ExtJS alors je vais improviser.

    Ton textfield existe-t-il déjà dans la vue ? Sinon, il faut le rajouter. Pour la suite je vais supposer que tu as un élément 'jsonField'.

    Je pense que tu peux ajouter ton instruction dès le début de la fonction success.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      success: function (response) {
        Ext.getComp('jsonField').setValue(response);
     
        …
     
      }
    Reste à savoir de quelle façon tu as envie de formater le JSON. Au besoin, si tu n’y a pas déjà pensé, il y a console.log, mais aussi console.dir et console.table
    (Voir console.)
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  5. #5
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    octobre 2012
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2012
    Messages : 304
    Points : 64
    Points
    64
    Par défaut
    Merci
    au fait le retour json est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    callback([{"Key":"STATUT","Value":"PASS"},{"Key":"MessageType","Value":"PASS"},{"Key":"Message","Value":"0=CARCASSE IJ25 FISCAL RACHAT,1=CARCASSE IJ25 RACHAT"}])
    avec cette ligne j'accede a l'ensemble ds valeurs
    response[2].Value
    par contre comment on peut mettre cette partie "Value":"0=CARCASSE IJ25 FISCAL RACHAT,1=CARCASSE IJ25 RACHAT" dans les champs du selectefield ?
    merci

  6. #6
    Membre éclairé
    Avatar de abraxis
    Homme Profil pro
    Développeur Web
    Inscrit en
    mai 2007
    Messages
    439
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mai 2007
    Messages : 439
    Points : 658
    Points
    658
    Par défaut
    Bonjour,

    Perso je te conseil de rajouter dans ton JSON plus de détails.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    {
        "success": true,  // false selon la réponse du serveur 
        "count": x // Nombre de données retournées par le serveur
        "data": [{..... }] // Tableau de data que tu souhaite exploiter
    }
    Pour setter des données à un combobox tu peux utiliser la méthode
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    store.setData(newData);
    // newData est un tableau de records que tu obtiens en réponse du serveur
    # apt-get install freedom

  7. #7
    Membre du Club
    Homme Profil pro
    PartNumber
    Inscrit en
    octobre 2012
    Messages
    304
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : PartNumber
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2012
    Messages : 304
    Points : 64
    Points
    64
    Par défaut Merci abraxis
    Oui a la date d'ajourd'hui j'ai modifié notamment le json et quand j'apelle le Webservice, j'ai le resultat suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    callback([{"Key":"COUNTER","Value":"2"},{"Key":"PARTNUMBER_0","Value":"CARCASSE IJ25 FISCAL RACHAT"},{"Key":"PARTNUMBER_1","Value":"CARCASSE IJ25 RACHAT"},{"Key":"STATUT","Value":"PASS"}])
    pour la partie sencha, j'ai mon code suivant mais j'arrive pas à matérialiser ce que je souhaite
    au fait sur le combobox, je souhaite avoir les deux valeurs suivantes :
    -CARCASSE IJ25 RACHAT
    -CARCASSE IJ25 FISCAL RACHAT
    et mon selectedfeiled est le suivant :
    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
    {
        xtype: 'selectfield',
        width: 500,
        flex: 1,
        itemId: 'ListeSN',
        maxHeight: 50,
        label: 'Liste de(s) Carcasse(s)',
        labelWrap: true,
        Store: 'ListeMachineScanStore',
        options: [
            {
                text: 'Veuillez choisir votre Carcasse ... !',
                value: 'Texte'
            },
            {
                text: store.setData(newData) //; listeCarcasse
            }
        ],
        // valueSelectCarcasse est le paramétre à passer dans le webservice pour mettre a jour (UPDATE) la table RDC-CORRESPONDANCE
        listeners: {
            change: function (field, valueSelectCarcasse) {
                valueSelectCarcasse = listeCarcasse
                Ext.Msg.alert('Neopost Industrie', valueSelectCarcasse, this);
            }
        },
        usePicker: false
    },
    Merci @ toi de ton aide

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/01/2006, 20h30
  2. [SWT]TextField dans SWT
    Par Albarad dans le forum SWT/JFace
    Réponses: 1
    Dernier message: 21/06/2004, 12h04
  3. [debutant] Creation de TextField - champ texte
    Par wkd dans le forum Composants
    Réponses: 3
    Dernier message: 04/06/2004, 14h00
  4. [MX] Textfield et action
    Par Admin dans le forum Flash
    Réponses: 5
    Dernier message: 24/11/2003, 13h47
  5. [Flash MX] Pb d'affichage dans un textfield
    Par dens63 dans le forum Flash
    Réponses: 2
    Dernier message: 04/11/2003, 10h49

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