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 :

récupérer les données d'un jsonWriter


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
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut récupérer les données d'un jsonWriter
    Bonjour à tous,

    J'ai un formulaire avec 3 champs et un tableau. Une fois le tout rempli on valide. Je récupère les valeurs de mes 3 champs sans problème, où ça se complique c'est pour le tableau. Je remplis le tableau avec les données sous json, j'aurais voulu les sortir sous le même format. Mais j'arrive pas à récupérer les données.

    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
     
    var jsonTab = ".$current_num->getJsonTab($current_num->getDefaultTabNum()).";
     
    var reader = new Ext.data.JsonReader({
    	idProperty: 'id_act',
    	fields: [
                     //les champs			
    		]
    });
     
    var writer = new Ext.data.JsonWriter({
    	encode: true,
    	writeAllFields: false
    });		
     
    var store = new Ext.data.GroupingStore({
            reader: reader,
    	writer: writer,
            data: jsonTab,
    	sortInfo: {field:'id_disc', direction:'ASC'},			
            groupField: 'discipline'
    });		
     
    function  fct_submit() {
    	formCreationListe.form.submit({});
    };
     
    var formCreationListe = new Ext.FormPanel({
    	labelWidth: 75,
    	width: 960,
    	standardSubmit: false,
    	method: 'POST',
    	url: 'index.php?page=ajout_liste',
    	frame:true,
    	title: '...',
    	renderTo:'formCreationListe',
    	bodyStyle:'padding:5px 5px 0',
    	defaultType: 'textfield',
    	labelWidth: 200,
    	items: [{
    		fieldLabel: 'Name ',
    		name: 'nom',
    		allowBlank:false,
    		width: 250
    		},new Ext.form.ComboBox({
    			typeAhead: true,
    			triggerAction: 'all',
    			transform: 'selectPj',
    			name: 'selectPj',
    			editable: false,
    			fieldLabel: 'Project ',						
    			lazyRender: true,
    			listClass: 'x-combo-list-small',
    			width: 250
    		}),{
    		fieldLabel: 'Colonnes (séparées par ;) ',
    		name: 'colonnes',
    		width: 250				
    		},new Ext.grid.EditorGridPanel({
    			store: store,
    			columns: [
                            //colonnes du grid
    			],
    			view: new Ext.grid.GroupingView({
    				forceFit: true,
    				showGroupName: false,
    				enableNoGroups: false,
    				enableGroupingMenu: false,
    				hideGroupedColumn: true
    				}),					
    			autoExpandColumn: 'activite',
    			title: 'Numerotation',
    			height: 400
    			})
    		],
    	buttons: [{
    		text: 'Validate',
    		handler : fct_submit
    		}]
    	});
    Merci, bonne journée.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    Bonjour,

    Bon j'ai toujours pas trouvé comment récupéré le résultat de mon store avec le writer. Du coup je suis passé pas une autre méthode qui n'est pas du tout optimisé et évolutive, je boucle sur le store pour sortir les données et construire une chaine.

    Du coup autre problème qui surgit, lors de la validation du formulaire. Dans mon formPanel quand je défini la propriété "standardSubmit" à false je récupère bien ma chaine. Par contre quand je suis en "standardSubmit: true". Pas moyen de récupérer ma chaine en POST.


    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
     
    		function  fct_submit() {
    			var jsonRtn = '';
     
    			store.each(function(store){
    				jsonRtn += '{".$guillemets."id_disc".$guillemets.": ' + store.data.id_disc + ',' + '".$guillemets."id_act".$guillemets.": ' + store.data.id_act + ',' + '".$guillemets."plageDeb".$guillemets.": ' + store.data.plageDeb + ',' + '".$guillemets."plageFin".$guillemets.": ' + store.data.plageFin + ',' + '".$guillemets."discipline".$guillemets.": ' + store.data.discipline + ',' + '".$guillemets."id_activite".$guillemets.": ' + store.data.activite + '},';
    			});
     
    			var myParams = {
    				gridStore: jsonRtn
    			};
     
    			formCreationListe.form.submit({
    				params: myParams
    			});
    		};
     
    		var formCreationListe = new Ext.FormPanel({
    			labelWidth: 75,
    			standardSubmit: true,
    			method: 'POST',
    			url: 'index.php?page=ajout_liste',		
    			frame: true,			
    			title: '...',
    			renderTo:'formCreationListe',
    			bodyStyle:'padding:5px 5px 0',
    			defaultType: 'textfield',
    			labelWidth: 200,
    			items: [{ //etc...
    J'espère que quelqu'un saura le pourquoi du comment, même si je ne désespère pas de trouver la solution aux deux problèmes

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    Bonjour,

    c'est une belle problématique ...

    je te conseillerais de créer une variable ma_chaine... et de créer un event 'change' dans ton tableau ...
    à chaque modification de ton tableau ... tu remplit ta variable ma_chaine.

    et lorsque l'utilisateur clique sur submit, tu récupères ta chaine ... et la mets dans un champ invisible de ton formulaire ... et tu renvoi le tout en post ...


    voila, bon courage ...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    Hi,

    Du coup le jsonWriter sert à rien si on ne va pas chercher en directe les fichiers php pour les insertions, arf dommage.

    Pour ce qui est du champ vide, j'avais essayé en créant un champs dans mon formulaire, mais j'ai pas réussi à mettre ma variable jsonRtn dans ce champ lors de ma fonction submit

    Dans ma fonction, j'ai essayé plusieurs écriture mais... C'est dans ce domaine d'extJS que pêche, la combinaison des objets/propriétés...

    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
     
    		function  fct_submit() {
    			var jsonRtn = '';
     
    			store.each(function(store){
    				jsonRtn += '{".$guillemets."id_disc".$guillemets.":' + store.data.id_disc + ',' + '".$guillemets."id_act".$guillemets.":' + store.data.id_act + ',' + '".$guillemets."plageDeb".$guillemets.":' + store.data.plageDeb + ',' + '".$guillemets."plageFin".$guillemets.":' + store.data.plageFin + ',' + '".$guillemets."id_prefixe".$guillemets.":' + store.data.id_prefixe + ',' + '".$guillemets."discipline".$guillemets.":' + '".$guillemets."' + store.data.discipline + '".$guillemets."' + ',' + '".$guillemets."activite".$guillemets.":' + '".$guillemets."' + store.data.activite + '".$guillemets."' + ',' + '".$guillemets."prefixe".$guillemets.":' + '".$guillemets."' + store.data.prefixe + '".$guillemets."' + '},';
    			});
     
    			var myParams = {
    				gridStore: jsonRtn
    			};
     
                            //et là ça va plus ...
    			formCreationListe.form.monChamp.value = jsonRtn;
     
    			formCreationListe.form.submit({
    				params: myParams
    			});
    		};
    En tout cas merci.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 39
    Par défaut
    Après avoir lus des tonnes de topic, du coup j'ai essayé ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Ext.getElementById('monChamp').value=maChaine;
    Mais ça me retourne comme erreur : Ext.getElementById is not a function

    L'erreur avec mon ancien code : formCreationListe.form.monChamp is undefined

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 267
    Par défaut
    ola ...
    Ext.getElementById('monChamp').value=maChaine;

    ca n'existe pas ...
    normal que ca ne marche pas ...

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 13/01/2006, 12h33
  2. XMLHttpRequest : Impossible de récupérer les données
    Par laurent_ifips dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 22/11/2005, 13h28
  3. [](VB) Récupérer les données dans un fichier .xml
    Par Furius dans le forum VBScript
    Réponses: 4
    Dernier message: 02/10/2005, 20h39
  4. Récupérer les données interbase dans une TStringGrid
    Par Ousse dans le forum Bases de données
    Réponses: 1
    Dernier message: 24/03/2005, 12h51
  5. Récupérer les données d'une iframe
    Par juli1 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 09/02/2005, 22h53

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