Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Fri 15 October 2010 10:47

soussou126
Participant occasionnel
Date d'inscription: 22 May 2010
Messages: 21

[Mapfish 1.2 et OpenLayers] Python controllers et textfield

Bonjour,
j'ai dans mon controller (python) une fonction qui me retourne un string

Code:

    def count(self):
   
        conn = engine.connect()
        results = conn.execute("SELECT get_points_into_poly_count2('Point(-282839.81724428 3194104.4938502)', 'Point(1422839.8172443 4405895.5061498)', 'stations_metro')").fetchone()
       
       
        for rst in results :
            print 'rst= ', rst
        return str(rst)

mon problème est que j'arrive pas à afficher le resultat retourné dans un textfield créer avec Ext

Code:

new Ext.form.FormPanel({
                items : [{
                            xtype : 'textfield',
                            name : 'text',
                            id : 'text'
                        }
})

si j'essaie d'affecter le resultat que me retourne ma fonction dans le textfield avec ce code,

Code:

document.getElementById("text").setAttribute('value',new OpenLayers.Protocol.HTTP({
                                    url : "http://192.192.2.33/carthageos_wsgi/stations_metro/count",
                                    format : new OpenLayers.Format.Text({
                                        internalProjection : map.projection,
                                        externalProjection : map.displayProjection
                                    })
                                }));

le textfield prend la valeur

[object Object]


des suggestions???
et merci

Hors ligne

 

#2 Fri 15 October 2010 11:01

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: [Mapfish 1.2 et OpenLayers] Python controllers et textfield

Bonjour,

Cela me parait normal car new OpenLayers.Protocol.HTTP renvoie un objet. Cette classe renvoie un objet OpenLayers.Protocol.Response (http://dev.openlayers.org/releases/Open … l.Response).

Pour débuguer et trouver la réponse je te propose de faire un console.log(monObjet); avec monObjet = new OpenLayers.Protocol.HTTP({[...])};. Firebug te permettra de voir les méthodes possibles et le "contenu" de cet objet.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Fri 15 October 2010 11:24

soussou126
Participant occasionnel
Date d'inscription: 22 May 2010
Messages: 21

Re: [Mapfish 1.2 et OpenLayers] Python controllers et textfield

tout d'abord merci pour ta réponse,


si je mets mon code dans une variable globale

Code:

st = new GeoExt.data.FeatureStore({
                            layer : vecLayer,
                            proxy : new GeoExt.data.ProtocolProxy({
                                protocol : new OpenLayers.Protocol.HTTP({
                                    url : "http://192.192.2.33/carthageos_wsgi/stations_metro/count",
                                    format : new OpenLayers.Format.Text({
                                        internalProjection : map.projection,
                                        externalProjection : map.displayProjection
                                    })
                                })
                            }),
                            autoLoad : true
                        });

et je débugue avec firebug, et j'ai bien un attribut responseText = 52 (qui est le retour de ma fonction)
mais je sais pas comment faire pour afficher cette réponse,

mais je ne sais pas comment mis prendre pour accéder à cette valeur!!

Hors ligne

 

#4 Fri 15 October 2010 11:28

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: [Mapfish 1.2 et OpenLayers] Python controllers et textfield

bonjour,

Ceci devrait renvoyer ce que tu veux :

Code:

console.log(st.responseText)

La méthode console.log() ne sert ici que pour renvoyer le contenu de st.responseText vers la console Firebug.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Fri 15 October 2010 11:39

soussou126
Participant occasionnel
Date d'inscription: 22 May 2010
Messages: 21

Re: [Mapfish 1.2 et OpenLayers] Python controllers et textfield

Yves a écrit:

bonjour,

Ceci devrait renvoyer ce que tu veux :

Code:

console.log(st.responseText)

La méthode console.log() ne sert ici que pour renvoyer le contenu de st.responseText vers la console Firebug.

Y.


j'ai testé j'ai ma réponse dans la console,
mais si je fait

alert(st.responseText)


l'alert m'affiche

undefined


!!

Hors ligne

 

#6 Fri 15 October 2010 11:49

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9869
Site web

Re: [Mapfish 1.2 et OpenLayers] Python controllers et textfield

Bonjour,

Un problème de variable globale/locale ? Sans voir le code je ne peux pas en dire plus.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#7 Fri 15 October 2010 12:01

soussou126
Participant occasionnel
Date d'inscription: 22 May 2010
Messages: 21

Re: [Mapfish 1.2 et OpenLayers] Python controllers et textfield

le fait que j'ai ma var 'st' qui s'affiche dans le DOM de firebug, ne signifie-t-il pas qu'elle est global???


autre chose: je crois que j'ai mal choisi le type de ma var

st = new GeoExt.data.FeatureStore


si j'ai bien compris (d'après mes recherches sur le net) ce type est utilisé quand la réponse du serveur est ensemble d'enregistrement d'une table, sauf que dans mon cas la réponse est un string!! je devrais peut être changer le type de ma variable!! mais par quel type????

Merci énormément pour ton aide

Dernière modification par soussou126 (Fri 15 October 2010 12:12)

Hors ligne

 

Pied de page des forums

Powered by FluxBB