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 :

Afficher les éléments d'un json dans un formulaire


Sujet :

Ext JS / Sencha

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 441
    Points : 139
    Points
    139
    Par défaut Afficher les éléments d'un json dans un formulaire
    Bonjour,

    J'ai un script php qui se connecte à une base de données et me renvoie un json.

    mon script :
    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
    $sp = $_GET['sp'];
     
    if ($sp!='') {
     
    $client = new SoapClient("monurl");
    $AphiaID=$client->getAphiaID($sp);
     
    $taxon=$client->getAphiaRecordByID($AphiaID);
     
    if ($taxon->scientificname == '') {$json='{"success":false, "data": {';}
    else {$json='{"success":true, "data": [{';}
     
    //$class=$client->getAphiaClassificationByID($AphiaID);
     
    $json = $json.'"scname": "'.$taxon->scientificname.'" , ';	// nom scientifique
    $json = $json.'"AphiaID": '.$taxon->AphiaID.', ';		// code WoRMS
    $json = $json.'"authority": "'.$taxon->authority.'", ';		// authority
    $json = $json.'"url": "'.$taxon->url.'", ';			// url de la fiche d'identité
    $json = $json.'"phylum": "'.$taxon->phylum.'", ';		// phylum
    $json = $json.'"class": "'.$taxon->class.'", ';			// classe
    $json = $json.'"order": "'.$taxon->order.'", ';			// ordre
    $json = $json.'"family": "'.$taxon->family.'", ';		// famille
     
    $json = substr($json,0,-2);
     
    }	// fin if ($sp!='') {
     
    $json = $json.'}]}';
     
    echo $json;
    exemple de json retourné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"success":true, "data": [{"scname": "Abra alba" , "AphiaID": 141433, "authority": "(W. Wood, 1802)", "url": "monurl", "phylum": "Mollusca", "class": "Bivalvia", "order": "Veneroida", "family": "Semelidae"}]}
    je veux afficher les éléments du json dans un FormPanel :
    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
    var formSP = new Ext.form.FormPanel({
    			width: 800,
    			loadMask: new Ext.LoadMask(Ext.getBody(), {msg:"Loading..."}),
    			items: [{
    				xtype: 'textfield',
    				fieldLabel: 'Nom scientifique',
    				name: 'scname',
    				value: store.getAt(0).get('scname')
    				},
    				{
    				xtype: 'textfield',
    				fieldLabel: 'AphiaID',
    				name: 'AphiaID',
    				value: store.getAt(0).get('AphiaID')
    				},
    				{
    				xtype: 'textfield',
    				fieldLabel: 'Nom commun',
    				name: 'phylum',
    				value: store.getAt(0).get('phylum')
    				},
    				{
    				xtype: 'textfield',
    				fieldLabel: 'Classification',
    				name: 'order',
    				value: store.getAt(0).get('order')
    				}
    			]
    	});
    les champs scname et AphiaID s'affichent bien, mais dans les champs phylum et order, il n'y a rien.
    pourtant, le json en sortie est correct (testé sur http://jsonlint.com/).

    une idée ?

    Merci,
    Nico

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 441
    Points : 139
    Points
    139
    Par défaut
    j'ai trouvé : dans la déclaration de mon jsonstore, je n'avais pas déclaré tous les champs !
    autant pour moi !

    Nico

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

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Points : 9 127
    Points
    9 127
    Par défaut
    Ne générère pas ton json dans une chaine c'est peut efficace et risqué
    Code php : 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
    $sp = $_GET['sp'];
     
    if ($sp!='') {
     
      $client = new SoapClient("monurl");
      $AphiaID=$client->getAphiaID($sp);
     
      $taxon=$client->getAphiaRecordByID($AphiaID);
     
     
      $json = array(
        'success' => ('' == $taxon->scientificname)
      );
     
      //$class=$client->getAphiaClassificationByID($AphiaID);
      $json['data'] = array(array( 
        'scname' => $taxon->scientificname, // nom scientifique
        'AphiaID' => $taxon->AphiaID,       // code WoRMS
        'authority' => $taxon->authority,   // authority
        'url' => $taxon->url,               // url de la fiche d'identité
        'phylum' => $taxon->phylum,         // phylum
        'class' => $taxon->class,           // classe
        'order' => $taxon->order,           // ordre
        'family' => $taxon->family          // famille
      ));
     
    } else {
      $json = array(
        'success' => false,
        'error' => 'sp undefined'
      );
    }  // fin if ($sp!='') {
     
    echo json_encode($json);

    avec php tu définit un structure de tableau imbriqué correspondants à la structure JSON attendue (tableau associatif donne {}, tableau indice donne [])

    ainsi tu est sur que ton javascript est correct pas de pb de ' de " de { ou [

    A+JYT

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

Discussions similaires

  1. [Python 2.X] Afficher les éléments d'une liste dans une fenetre tkinter
    Par Anatole01 dans le forum Général Python
    Réponses: 4
    Dernier message: 29/04/2015, 15h05
  2. Afficher les éléments d'une condition dans une cellule
    Par thanmirt dans le forum Débuter
    Réponses: 2
    Dernier message: 16/04/2012, 19h48
  3. Afficher les éléments d'un tableau dans une ArrayList
    Par AmeniESC dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 23/03/2012, 12h52
  4. Réponses: 5
    Dernier message: 23/04/2007, 13h37
  5. Réponses: 2
    Dernier message: 27/12/2005, 20h09

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