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éponse Ajax XML dans un Gridpanel ExtJs


Sujet :

Ext JS / Sencha

  1. #1
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Par défaut Réponse Ajax XML dans un Gridpanel ExtJs
    Bonjour à tous, je suis nouveau ici.

    Je viens vous demander votre aide pour un petit problème que je rencontre dans mon application web.

    J'ai crée une application web (ExtJs, GeoExt, Openlayers) où je fais une requêtes Ajax vers une base de données Oracle via une JSP.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var ajax1= Ext.Ajax.request({
    				url : 'test.jsp' , 
    				method: 'GET',
    				success: function ( result, request ) { 
    				xmlrep= result.responseXML;
    					Ext.MessageBox.alert('reussi', 'retour serveur: '+ xmlrep); 
    				store4.loadData(xmlrep);
     
    			},
    				failure: function ( result, request) { 
    					Ext.MessageBox.alert('echec', result.responseXML); 
    				} 
    			});
    Jusque là tous va bien ma requête me renvois cette réponse XML:

    Tous me parait normal.
    Donc j'essai de mettre cette réponse dans un store et de l'afficher dans un grid, de cette manière:
    -pour le store
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var store4 = new Ext.data.XmlStore({
    				autoLoad: true,
     
    				record: 'row',
    				idIndex: 'nom_accession',
    				fields: [{name: 'nom_accession', mapping: 'nom_accession'},
    				         'numero_accession','spirale_gousse_horaire','spirale_gousse_anti_horaire'
    				         ]
    			});
    -pour le grid
    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
    var gridPanel2= new Ext.grid.GridPanel({
    				title: "donnees des accessions",
    				region: 'east',
    				store: store4,
    				width: 1200,
    				height: 100,
    				collapsible: true,
    				columns: [{
    					header: "nom de l accession",
    					width: 150,
    					sortable: true,
    					dataIndex: "nom_accession"},
    					{
    						header: "numero de l accession",
    						width: 150,
    						dataIndex: "numero_accession"},
    						{
    							header: "% spirale horaire",
    							width:150,
    							dataIndex: "spirale_gousse_horaire"},
    							{
    								header: "% spirale antihoraire",
    								width: 150,
    								dataIndex: "spirale_gousse_anti_horaire"}],
    Et la c'est le drame quand je lance mon application, tous marche bien, j'ai bien mes 56 lignes correspondant aux objets de mon fichiers XML dans le grid mais rien, pas de texte, pas de caractères rien...

    D'où pensez vous que le problème viens.

  2. #2
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Par défaut
    Le problème est résolu, j'ai tous simplement laissé mes champs attributaires en miniscules dans le js, j'ai tous retapé en majuscule et ça fonctionne parfaitement.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Par défaut besoin d'aide
    Citation Envoyé par frankySIG Voir le message
    Le problème est résolu, j'ai tous simplement laissé mes champs attributaires en miniscules dans le js, j'ai tous retapé en majuscule et ça fonctionne parfaitement.
    salut j'ai le meme problem mais je suis novice avec jsp et oracle et je trouve data grid editable du framwork EXTJS tu peux m'aider stp car tous les exmple que je trouve pour un data grid editable sont avec code PHP cote serveur et surtou le plugin RecordForm Plugin by Saki
    j'attend ton aide et merci d'avance

  4. #4
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Par défaut
    Salut, bon moi aussi je suis novice (je n'avez jamais touché au java avant hier matin!) mais je peux peut être t'aider.
    Pour afficher des info dans un grid panel à partir d'une requête Ajax il faut:

    -créer un code (php, jsp...) coté serveur qui va se connecter à ta base de données ou directement de retourner une information, dans mon cas j'ai utilisé le JSP car je bosse sur tomcat(java) c'est donc plus simple. tu peut renvoyé du XML, du text ou de l'html comme tu préfère.

    -créer une requête Ajax coté client (dans ton js), tu appel ton fichier côté serveur et tu récupère la réponse.

    -stocker la réponse dans un store adapté (JSON, XML ou store simple, à toi de voir).

    -tu crée un gridpanel (Ext.grid.GridPanel) où tu utilise ton store pour afficher des infos.

    Bon là je n'ai pas tous les codes mais demain (au boulot) je les posterai

  5. #5
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Par défaut
    Citation Envoyé par frankySIG Voir le message
    Salut, bon moi aussi je suis novice (je n'avez jamais touché au java avant hier matin!) mais je peux peut être t'aider.
    Pour afficher des info dans un grid panel à partir d'une requête Ajax il faut:

    -créer un code (php, jsp...) coté serveur qui va se connecter à ta base de données ou directement de retourner une information, dans mon cas j'ai utilisé le JSP car je bosse sur tomcat(java) c'est donc plus simple. tu peut renvoyé du XML, du text ou de l'html comme tu préfère.

    -créer une requête Ajax coté client (dans ton js), tu appel ton fichier côté serveur et tu récupère la réponse.

    -stocker la réponse dans un store adapté (JSON, XML ou store simple, à toi de voir).

    -tu crée un gridpanel (Ext.grid.GridPanel) où tu utilise ton store pour afficher des infos.

    Bon là je n'ai pas tous les codes mais demain (au boulot) je les posterai
    Bonjour frankySIG,
    merci pour la réponse, je t'explique, je vais utiliser RecordForm Plugin by Saki pour le framework EXTJS c'est un super plugin pour le composant datagrid pour mettre en œuvre un CRUD (Create, Read, Update, Delete) et comme je viens de le dire que j'utilise JSP cote serveur et malheureusement l'exemple ici c'est en php, et je trouve pas comment faire pour remplir cette data grid à partir d'une BD oracle via JSp et dans le cas ou y une mise à jour de cette data grid cote client comment transférer ces modif à ma base de données si je valide ces modif
    - pour un code jsp coté serveur qui va se connecter à ta base de données c'est pas un problème
    -créer une requête Ajax coté client (dans ton js), tu appel ton fichier côté serveur et tu récupère la réponse et les autres points => la je trouve des difficulté
    j'attend ton aide frankySIG et merci bien
    Tres bonne journée

  6. #6
    Membre averti
    Inscrit en
    Juin 2010
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 35
    Par défaut
    Je ne connais pas le pluggins que tu utilise, par contre je te poste un exemple de JSP, bon attention c'est pas un très bon exemple du tout (je débute de chez débute) mais ça fonctionne, à améliorer avec quelqu'un qui touche mieux le java.
    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
      <%@ page contentType="text/xml" %>
     <%@ page import="java.sql.*" %>
    <%
    Connection conn = null;
     
    try {
    	Class.forName("oracle.jdbc.driver.OracleDriver");
    	conn = DriverManager.getConnection("jdbc:oracle:thin:@nom_hote:port_hote:nom_base", "utilisateur", "mot_de_pass");
    	Statement stmt= conn.createStatement();
    	ResultSet rs = stmt.executeQuery("SELECT * FROM geo.medicago_accessions");
    		out.println("<dataset>\r"); 
    	while(rs.next())
     
    	{
     
    	out.println("\t<row>\r");
    	out.println("\t\t<IDENTIFIANT_ACCESSION>"+rs.getString("IDENTIFIANT_ACCESSION")+"</IDENTIFIANT_ACCESSION>\r");
    	out.println("\t\t<IDENTIFIANT_SITE>"+rs.getString("IDENTIFIANT_SITE")+"</IDENTIFIANT_SITE>\r");
    	out.println("\t\t<NOM_ACCESSION>"+rs.getString("NOM_ACCESSION")+"</NOM_ACCESSION>\r");
    	out.println("\t\t<NUMERO_ACCESSION>"+rs.getString("NUMERO_ACCESSION")+"</NUMERO_ACCESSION>\r");
    	out.println("\t\t<NUMERO_DE_COLLECTION>"+rs.getString("NUMERO_DE_COLLECTION")+"</NUMERO_DE_COLLECTION>\r");
    	out.println("\t\t<DATE_COLLECTION>"+rs.getString("DATE_COLLECTION")+"</DATE_COLLECTION>\r");
    	out.println("\t\t<LISTE_COLLECTEUR>"+rs.getString("LISTE_COLLECTEUR")+"</LISTE_COLLECTEUR>\r");
    	out.println("\t\t<NOM_SCIENTIFIQUE>"+rs.getString("NOM_SCIENTIFIQUE")+"</NOM_SCIENTIFIQUE>\r");
    	out.println("\t\t<RANG_TAXONOMIQUE>"+rs.getString("RANG_TAXONOMIQUE")+"</RANG_TAXONOMIQUE>\r");
    	out.println("\t\t<SPIRALE_GOUSSE_HORAIRE>"+rs.getString("SPIRALE_GOUSSE_HORAIRE")+"</SPIRALE_GOUSSE_HORAIRE>\r");
    	out.println("\t\t<SPIRALE_GOUSSE_ANTI_HORAIRE>"+rs.getString("SPIRALE_GOUSSE_ANTI_HORAIRE")+"</SPIRALE_GOUSSE_ANTI_HORAIRE>\r");
    	out.println("\t</row>\r");
    	}
    	out.println("</dataset>\r"); 
     
     
    	}
    	catch(SQLException e)
    	{
     
    	out.println("SQLException: " + e.getMessage() + "<BR>");
    	while((e = e.getNextException()) != null)
    	out.println(e.getMessage() + "<BR>");
     
    	}
     
    	catch(ClassNotFoundException e)
     
    	{
    	out.println("ClassNotFoundException: " + e.getMessage() + "<BR>");
    	}
    	finally
    	{
     
    	if(conn != null)
    	{
    	try
    	{
    	conn.close();
    	}
    	catch (Exception ignored) {}
    	}
    	}
     
    	%>
    ça me renvoie un XML avec la requête que je demande, il faut penser à ajouter le driver oracle sur ton serveur (ojdbc14.jar je crois).
    après pour les exemples du store et de la requêtes je l'ai déjà posté plus haut.

    Bon courage.

    Dernière question pourquoi utiliser ce plugin? il n'y a pas une solution plus simple?

  7. #7
    Membre du Club
    Inscrit en
    Avril 2010
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 8
    Par défaut
    Merci beaucoup amigos je vais voir en détail
    le choix de cette solution c'est pour avoir les CRUD dans la même pages et aussi je vais adapter une solution DataDrop – Drag Grid Data in From a Spreadsheet tu peux consulter le lien ICI pour éviter l'upload des fichier Excel juste je vais faire le DragAndDrop du fichier excel vers datagrid et je fait submit
    bon si tu as des remarque je suis à l'ecoute
    et je te remercie encore une fois

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

Discussions similaires

  1. Sélectionner une ligne dans mon GridPanel - ExtJs
    Par July171292 dans le forum Ext JS / Sencha
    Réponses: 5
    Dernier message: 14/03/2015, 14h39
  2. Réponses: 5
    Dernier message: 18/11/2009, 18h17
  3. [MooTools] Traiter une réponse ajax XML avec Mootools
    Par dolu02 dans le forum Bibliothèques & Frameworks
    Réponses: 0
    Dernier message: 24/12/2008, 17h58
  4. [AJAX] ajax ecrire dans du xml
    Par jdar dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/02/2007, 18h49
  5. [AJAX] texte réponse Ajax dans un conteneur div
    Par grinder59 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/02/2006, 19h07

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