[Mapserver-DE] Filterergebnisse verschwinden

Michael Schulz mschulz at webgis.de
Fre Jul 1 20:50:53 CEST 2005


Hallo,

die Werte der übergebenen cgi-Parameter, in diesem Fall dem 
filter-string, müssen url-encoded sein,  da in der url keine Leerzeichen 
oder andere Sonderzeichen vorkommen dürfen. Dafür kann man in den 
Templates die escapten Versionen der Parameter verwenden, diese erhält 
man, wenn man ein _esc an den Parameternamen anhängt, hier also: 
[map_gastronomie_filter_esc]

Hoffe damit kommen Sie weiter.

Viele Grüße, Michael Schulz



Constanze Tschritter schrieb:

>Hallo,
>
>ich habe jetzt die Zeile 
>
><input type="hidden" name="map_gastronomie_filter"
>value="[map_gastronomie_filter]">
>
>in das Template eingefügt, allerdings mit dem Resultat, dass auf einmal eine
>Fehlermeldung von PostGIS kommt:
>    Postgresql reports the error ''
>
>    More Help:
>
>    Error with POSTGIS data variable. You specified '<check      
>    your .map       file>'.
>    Standard ways of specifiying are :
>    (1) 'geometry_column from geometry_table'
>    (2) 'geometry_column from (<sub query>) as foo using unique <column   
>    name> using SRID=<srid#>'
>
>    Make sure you put in the 'using unique <column name>' and 'using  
>    SRID=#' clauses in.
>
>Der Filter ist im Abfrageformular folgendermaßen festgelegt:
>
>    <input type="hidden" name="map_gastronomie_filter"  
>    value="(gemeinde='Berne' or gemeinde='Brake' or gemeinde='Butjadingen' 
>    or gemeinde='Elsfleth' or gemeinde='Jade' or gemeinde='Lemwerder' or 
>    gemeinde='Nordenham' or gemeinde='Ovelgoenne' or gemeinde='Stadland' 
>    and kategorie='Restaurant' or kategorie='Cafe' or kategorie='Imbiss' 
>    or kategorie='Melkhus' or kategorie='Sonstiges')"> 
>
>und und im Mapfile sieht das dann so aus:
>    
>    LAYER # Gastronomie
>
>  NAME         gastronomie
>  TYPE         POINT
>  TOLERANCE    5
>  STATUS       OFF
>
>  CONNECTIONTYPE postgis
>  CONNECTION "user=postgres password=weser dbname=GIS host=131.173.80.225
>port=5432"
>  DATA "the_geom from gastronomietable"
>
>  FILTER "(gemeinde = 'Berne' or gemeinde = 'Brake' or gemeinde =
>'Butjadingen' or gemeinde = 'Elsfleth' or gemeinde = 'Jade' or gemeinde =
>'Lemwerder' or gemeinde = 'Nordenham' or gemeinde = 'Ovelgoenne' or gemeinde
>= 'Stadland') and (kategorie = 'Restaurant' or kategorie = 'Cafe' or
>kategorie = 'Imbiss' or kategorie = 'Melkhus' or kategorie = 'Sonstiges')"
>
>Vielleicht wird mein Problem ja durch die "Code Schnipsel" etwas deutlicher.
>
>
>Schöne Grüße
>
>Constanze Tschritter
>
>
>
>>--- Ursprüngliche Nachricht ---
>>Von: Michael Schulz <mschulz at webgis.de>
>>An: Constanze Tschritter <Conny3 at gmx.de>
>>Kopie: mapserver-de at freegis.org
>>Betreff: Re: [Mapserver-DE] Filterergebnisse verschwinden
>>Datum: Fri, 01 Jul 2005 15:45:18 +0200
>>
>>Hallo,
>>
>>sämtliche an das mapserver-cgi übergebene URL-Parameter stehen in den 
>>templates 1:1 wieder zur Verfügung.
>>
>>Wird Beim initialen mapserver-Aufruf ein filter-parameter in der URL a 
>>la ...&map_layer1_filter=ihr_filter&... mitgegeben, dann können sie in 
>>den templates diesen Filterbegriff wieder einfliessen lassen, z.b. in 
>>ein verstecktes Inputfeld:
>>
>><input type="hidden" name="map_layer1_filter" value="[map_layer1_filter]">
>>
>>oder in ein Texteingabefeld, dann können sie den Filter auf jeder Seite 
>>bearbeiten:
>>
>><input type=text name="map_layer1_filter" value="[map_layer1_filter]">
>>
>>Dadurch wird der aktuelle Filterbegriff immer wieder an das 
>>mapserver-cgi geschickt, die Daten entsprechend gefiltert und in den 
>>Templates der Filterbegriff wieder eingefügt.
>>
>>War es das was Sie wollten? Ansonsten bitte nochmal vielleicht mit ein 
>>paar Code-Schnipseln posten, damit das Problem noch klarer wird.
>>
>>Viele Grüße, Michael Schulz
>>
>>
>>
>>Constanze Tschritter schrieb:
>>
>>>Hallo,
>>>
>>>jetzt muss ich doch noch einmal nachfragen. Vom Prinzip her funktioniert
>>>
>>es
>>
>>>so, wie Sie es vorgeschlagen haben, allerdings nur mit einem statisch im
>>>template festgelegten Filterbegriff. Da jedoch anstatt dieses Ausdrucks,
>>>
>>der
>>
>>>Filterbegriff als eine Variable dynamisch aus einem html-Formular
>>>
>>übergeben
>>
>>>wird und sich dadurch der Filter immer wieder verändert, müsste die
>>>Filtervariable von dem Formular außer an das map-file auch in
>>>
>>irgendeiner
>>
>>>Form direkt an das Template übergeben werden. Wie kann ich das am
>>>elegantesten realisieren?
>>>
>>>Vielen Dank 
>>>
>>>Constanze Tschritter
>>>
>>>
>>>
>>>>--- Ursprüngliche Nachricht ---
>>>>Von: "Jörg Thomsen (MapMedia GmbH)" <jt at mapmedia.de>
>>>>An: mapserver-de at freegis.org
>>>>Betreff: Re: [Mapserver-DE] Filterergebnisse verschwinden
>>>>Datum: Wed, 29 Jun 2005 15:19:18 +0200
>>>>
>>>>
>>>>
>>>>>vielen Dank für die schnelle Antwort. Das klingt ja schon mal nicht
>>>>>schlecht. Allerdings ist mir nicht ganz klar, wie die Realisierung
>>>>>
>>>>aussehen
>>>>
>>>>
>>>>>soll. Meinen Sie damit, dass ich im Template einen Ausdruck wie
>>>>>beispielsweise:'Input type="hidden" name="Filter" value="xxx" '
>>>>>
>>einfügen
>>
>>>>>sollte?
>>>>>
>>>>genau das!
>>>>
>>>>Viele Grüße, Jörg Thomsen
>>>>
>>>>
>>>>
>>>>>>--- Ursprüngliche Nachricht ---
>>>>>>Von: "Jörg Thomsen (MapMedia GmbH)" <jt at mapmedia.de>
>>>>>>An: mapserver-de at freegis.org
>>>>>>Betreff: Re: [Mapserver-DE] Filterergebnisse verschwinden
>>>>>>Datum: Wed, 29 Jun 2005 14:03:17 +0200
>>>>>>
>>>>>>Constanze Tschritter schrieb:
>>>>>>
>>>>>>
>>>>>>
>>>>>>>Hallo! 
>>>>>>>Ich benutze den UMN Mapserver in der Version 4.0 als CGI und führe
>>>>>>>
>>>>>>Abfragen
>>>>>>
>>>>>>
>>>>>>
>>>>>>>über einen Filter im Mapfile durch. Dieser Filter wird mittels der
>>>>>>>
>>URL
>>
>>>>>>>gesetzt. Jetzt zu meinem Problem: Sobald der Kartenauschnitt in
>>>>>>>
>>>>>>irgendeiner
>>>>>>
>>>>>>
>>>>>>
>>>>>>>Form (Pan, Zoom) verändert wird, sind auch meine Filtergergebnisse
>>>>>>>verschwunden. Als mögliche Lösung des Problems hatte ich die
>>>>>>>
>>>>>>CGI-Variable
>>>>>>
>>>>>>
>>>>>>
>>>>>>>savemap in Betracht gezogen. Allerdings wurde diese Funktion ab
>>>>>>>
>>Version
>>
>>>>>>4.0
>>>>>>
>>>>>>
>>>>>>
>>>>>>>wegen Sicherheitsmängeln ausgeschaltet. 
>>>>>>>Hat hier vielleicht jemand eine Idee, wie ich meine Filterergebnisse
>>>>>>>
>>>>>>selbst
>>>>>>
>>>>>>
>>>>>>
>>>>>>>bei veränderten Kartenausschnitt beibehalten kann? 
>>>>>>>
>>>>>>Hallo,
>>>>>>
>>>>>>ich würde den Filter als versteckte Eingabefelder in das Formular der 
>>>>>>Kartennavigation aufnehmen.
>>>>>>
>>>>>>Jörg Thomsen
>>>>>>
>>>>>>-- 
>>>>>>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>UMN MapServer Anwenderkonferenz 2005
>>>>>>am 8./9. September in Hannover
>>>>>>weitere Infos: http://www.umn-mapserver.de/meeting.html
>>>>>>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>>>>>
>>>>>>_______________________________________________
>>>>>>Mapserver-DE mailing list
>>>>>>Mapserver-DE at freegis.org
>>>>>>https://freegis.org/mailman/listinfo/mapserver-de
>>>>>>
>>>>>>
>>>>>
>>>>_______________________________________________
>>>>Mapserver-DE mailing list
>>>>Mapserver-DE at freegis.org
>>>>https://freegis.org/mailman/listinfo/mapserver-de
>>>>
>>>>
>>>
>>
>>-- 
>>-----------------------------------------------------------
>>Michael Schulz                            mschulz at webgis.de
>>
>>in medias res  Gesellschaft für Informationstechnologie mbH
>>
>>In den Weihermatten 66              Tel +49 (0)761 556959-5
>>79108 Freiburg                      Fax +49 (0)761 556959-6
>>
>>                www.webgis.de / www.zopecms.de
>>-----------------------------------------------------------
>>NEU ++ UMN MapServer Hosting ++ http://www.webgis.de ++ NEU
>>-----------------------------------------------------------
>>
>>
>




This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)