Hi.

The output of the form is supposed to be a value to pass to a filter specified in my mapfile.

Actually, I think I am close to the solution, but I also think I misunderstood the way I am supposed to do what I need.

Basically, the output of the form should replace the value '%vitigni%' in the string:

    FILTER ('[vitigni]' = '%vitigni%') # MAPFILE

I also forgot to mention I am doing everything with openlayers, so I think I should use ol API rather than ms templating.

Am I on the right track?

Actually, by my last tests I got something positive by specifying the 'params' option using ol's " ol.source.ImageWMS" (http://openlayers.org/en/latest/apidoc/ol.source.ImageWMS.html).

The thing I need I guess is to get user choice from the form and pass it in the filter updating the 'params' option (using the "updateParams()" method?, see http://openlayers.org/en/latest/apidoc/ol.source.ImageWMS.html#updateParams).

Do you think this is correct?

Sorry for messing up a bit but it's really new stuff for me...


On 28/11/2017 21:30, Lime, Steve D (MNIT) wrote:
The error you're getting is because no mode is set. That's the output from the 
form supposed to be? If it's just the resulting map then add a hidden variable 
called mode with a value of map. The filter and validation look ok to me. 
--Steve

-----Original Message-----
From: mapserver-users [mailto:mapserver-users-boun...@lists.osgeo.org] On 
Behalf Of umbertofili...@tiscali.it
Sent: Tuesday, November 28, 2017 8:24 AM
To: 'Trond Michelsen' <trondmm-mapser...@crusaders.no>; 'Mapserver' 
<mapserver-users@lists.osgeo.org>
Subject: [mapserver-users] R: understanding runtime substitution usage

I tried that but that did not do the trick.
I removed it from the HTML, but I keep it in the mapfile (as if I remove it
it does not work anymore).

So, what I am trying to do is showing my WMS filtered with the value
specified in the form.

 From what I've read in the docs
(http://www.mapserver.org/cgi/runsub.html#filters), VALIDATION is also
mandatory from version 6 onward, so I've included it.
I simplified my testcase to this:

mapfile

        LAYER
          NAME zone
          ...
          FILTER ('[vitigni]' = '%vitigni%')
          VALIDATION
            "vitigni" "^[a-zA-Z\-]+$"
          END
               END

Form

                 <form name="mapserv" method="GET"
action="http://localhost/cgi-bin/mapserver/mapserv.exe?";>
                <input type="hidden" name="map"
value="//nbgis01/mapserver/umbe/mapfile/test10_runtimesubstitution.map">
                <select name="vitigni">
                                        <option value="Groppello"> Groppello
</option>
                        </select>
                <br><br>
                <input type="submit" value="Click Me">
                 </form>

When I click "Click Me" I receive:
        mapserv(): Web application error. Traditional BROWSE mode requires a
TEMPLATE in the WEB section, but none was provided.

And the URL looks like (obviously wrong):
        
http://localhost/cgi-bin/mapserver/mapserv.exe?map=%2F%2Fnbgis01%2Fmapserver
%2Fumbe%2Fmapfile%2Ftest10_runtimesubstitution.map&vitigni=Groppello

-----Messaggio originale-----
Da: tron...@main.crusaders.no [mailto:tron...@main.crusaders.no] Per conto
di Trond Michelsen
Inviato: martedì 28 novembre 2017 15:04
A: Mapserver <mapserver-users@lists.osgeo.org>
Cc: umbertofili...@tiscali.it
Oggetto: Re: [mapserver-users] understanding runtime substitution usage

Try to remove the brackets from the parameter name

<select name="[vitigni]">

should be

<select name="vitigni">


_______________________________________________
mapserver-users mailing list
mapserver-users@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapserver-users

Reply via email to