Still struggling with the search function.

To resume what I am experiencing with a 2 fields search, which consists in
finding a street name and then a building number on this street:

1) It looks like I can not set the first field search mode to 'options', my
postgis table is too big (~10'000 rows).
If I do, even though the values are there (Firebug can lists the option
values), they are not displayed in the drop down menu.

2) When I set the first field mode to 'suggest', it works but the query is
launched as soon as I click on a proposed value.
So when I click on a street name, the query is done before I can specify a
building number.

Is a two fields search supposed to work with both fields using 'suggest'
mode?
If so, do you have any idea why the search doesn't wait for the second
input before launching the query?

Any working exemple available?
Link to the gisdb postgis table used in the dev search.xml?


Thanx,
Chris








On Wed, Mar 27, 2013 at 3:56 PM, Chris forum <bak.fo...@gmail.com> wrote:

> Hi Thomas,
>
> Thx for your fast reply!
>
> The <searchitem> of my last message was related to a shapefile for a
> test. That's why I didn't add an SQL query in it as I didn't see any
> shapefile example with an sql tag.
> Anyway, I just tried to add:
> <sql>SELECT DISTINCT NUMBER FROM building _shp">
> WHERE TYPE = '[dependfldval]'  AND NUMBER ~* '[search]' ORDER BY NUMBER
> </sql>
>
> But the second field is still not filtered... : (
>
> From what I see, you example with 2 fields is dealing with a PGSQL table.
> Here is what I have:
> <searchitem name="addresses" description="Addresses -Suggest Suggest
> PGSQL-">
>        <layer type="postgis" name="Address_table">
>
>         <field type="s" name="Address_field" description="Street"
> wildcard="2">
>                 <definition type="suggest" connectiontype="db"
> minlength="1" startleft="1" sort="asc">
>                        <dsn encoding="UTF-8">pgsql://user:pass@localhost
> /db</dsn>
>                   <sql>SELECT DISTINCT Address_field FROM
> public.Address_table WHERE Address_field IS NOT NULL ORDER BY
> Address_field</sql>
>
> <events>onchange="$('#pmsfld_number_field').val('').flushCache()"</events>
>                    </definition>
>             </field>
>
>             <field type="n" name="Number_field" description="Nb"
> wildcard="2">
>                <definition type="suggest" connectiontype="db" sort="asc"
> minlength="3" dependfld="Address_field">
>                   <dsn encoding="UTF-8">pgsql://user:pass@localhost
> /db</dsn>
>                   <sql>SELECT DISTINCT Number_field FROM
> public.goeland_addresse_lausanne WHERE Number_field ~* '^[search]' {and
> Address_field = '[dependfldval]'} ORDER BY Number_field</sql>
>                </definition>
>         </field>
>
>      </layer>
> </searchitem>
>
> First field works, but the query is made as soon as I choose one entry in
> the list. No chance to select anything on the 2nd field.
> If I switch the first field mode to 'options', the drop down menu comes
> empty. Actually the values are in there, but just not displayed... very
> strange.
>
> In case the problem is there, here under the related layer of my mapfile:
> LAYER
>    NAME "Address_table"
>    TYPE POINT
>    DATA "geom from Address_table using unique idaddress using srid=21781"
>    CONNECTIONTYPE postgis
>    CONNECTION "user=user password=pass dbname=db host=localhost
> port=5432"
>    METADATA
>       "DESCRIPTION" "Addresses"
>       "RESULT_FIELDS" "idaddress, Address_table, Number_field"
>        "RESULT_HEADERS" "ID, Street, Nb"
>        "ows_title" "addresses"
>    END
>    TEMPLATE void
>    CLASS
>       STYLE
>          SYMBOL "circle"
>          COLOR 255 0 125
>          MINSIZE 1
>          SIZE 6
>          MAXSIZE 10
>       END
>    END
> END
>
> Do you see anything wrong/missing?
>
>
>
>
>
> On Wed, Mar 27, 2013 at 2:55 PM, Thomas RAFFIN <traf...@sirap.fr> wrote:
>
>> I think you have to define the SQL query for suggest option with depend
>> field val. Here is an example for the 2d field that depend on field1
>>
>>              <field type="s" name="field2" description="Field 2"
>> wildcard="0" size="15">
>>                  <definition type="suggest" connectiontype="db"
>> startleft="1" sort="asc" minlength="4" dependfld="field1">
>>                      <dsn encoding="UTF-8">@</dsn>
>>                      <sql>SELECT DISTINCT field2 FROM schema.table WHERE
>> field1 = '[dependfldval]'  AND field2 ~* '[search]' ORDER BY field2</sql>
>>                        <events></events>
>>                  </definition>
>>              </field>
>>
>> NB: it is possible to use many depend fields, but if it doesn't works
>> already, maybe I've forgotten to commit something...
>>              <field type="s" name="field1" description="Field 1"
>> wildcard="0" size="15">
>>
>> <events>onchange="$('#pmsfld_field2').val('');$('#pmsfld_field2').flushCache();"</events>
>>              </field>
>>              <field type="s" name="field2" description="Field 2"
>> wildcard="0" size="15">
>>                  <definition type="suggest" connectiontype="db"
>> startleft="1" sort="asc" minlength="4" dependfld="field1">
>>                      <dsn encoding="UTF-8">@</dsn>
>>                      <sql>SELECT DISTINCT field2 FROM schema.table WHERE
>> field1 = '[dependfldval]' AND field2 ~* '[search]' ORDER BY att1</sql>
>>
>> <events>onchange="$('#pmsfld_field3').val('');$('#pmsfld_field3').flushCache();"</events>
>>                  </definition>
>>              </field>
>>              <field type="s" name="field3" description="Field 3"
>> wildcard="0" size="15">
>>                  <definition type="suggest" connectiontype="db"
>> startleft="1" sort="asc" minlength="4" dependfld="field1,field2">
>>                      <dsn encoding="UTF-8">@</dsn>
>>                      <sql>SELECT DISTINCT field3 FROM schema.table WHERE
>> field1 = '[dependfldval_field1 ]' AND field2 = '[dependfldval_field2]'
>> AND field3 ~* '[search]' ORDER BY field3</sql>
>>                        <events>....</events>
>>                  </definition>
>>              </field>
>>
>> Le 27/03/2013 14:15, Chris forum a écrit :
>> > Hi all,
>> >
>> > I am having a hard time getting to work a search with 2 fields, second
>> one
>> > being dependant of the first one.
>> > I especially would like to do that with data coming from PGSQL .
>> >
>> > I know there are examples in the search.xml of the wiki, but I am not
>> able
>> > to reproduce them with the demo data:
>> > - "Cities Options Suggest MS": P.MAPPER ERROR: This version of PHP does
>> > support dBase functions
>> > - "Communes Suggest PG": I can not find where to download the PGSQL
>> > database gisdb
>> >
>> > Does anyone have a link where to get gisdb database?
>> >
>> > Here under what I tried with my own shapefile data.
>> > This sort of work, but the second field is not filtered according to
>> what
>> > has been chosen on the first field.
>> >
>> > <searchitem name="Test" description="Test -Options Suggest MS-">
>> >              <layer type="shape" name="building _shp">
>> >
>> >                 <field type="s" name="TYPE" description="Building Type"
>> > wildcard="2">
>> >                      <definition type="options" connectiontype="ms"
>> > sort="asc" firstoption="*">
>> >                          <mslayer encoding="ISO-8859-1" keyfield="TYPE"
>> > showfield="TYPE"/>
>> >
>> > <events>onchange="$('#pmsfld_NUMBER').val('').flushCache()"</events>
>> >                      </definition>
>> >                  </field>
>> >
>> >                    <field type="s" name="NUMBER" description="Building
>> > Number" wildcard="2">
>> >                        <definition type="suggest" connectiontype="ms"
>> > minlength="1" startleft="1" sort="asc" dependfld="TYPE">
>> >                        <mslayer encoding="ISO-8859-1" keyfield="NUMBER"
>> > showfield="NUMBER"/>
>> >                        </definition>
>> >                    </field>
>> >
>> >              </layer>
>> >          </searchitem>
>> >
>> >
>> > Regards,
>> > Chris
>> >
>> ------------------------------------------------------------------------------
>> > Own the Future-Intel&reg; Level Up Game Demo Contest 2013
>> > Rise to greatness in Intel's independent game demo contest.
>> > Compete for recognition, cash, and the chance to get your game
>> > on Steam. $5K grand prize plus 10 genre and skill prizes.
>> > Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d
>> > _______________________________________________
>> > pmapper-users mailing list
>> > pmapper-users@lists.sourceforge.net
>> > https://lists.sourceforge.net/lists/listinfo/pmapper-users
>> >
>> >
>>
>> --
>>
>>
>> Thomas RAFFIN
>> Chef de Projet Internet
>> traf...@sirap.fr <mailto:traf...@sirap.fr>      Sirap <http://sirap.fr>
>>         Tel
>> : 04 75 72 84 10
>> Fax : 04 75 70 07 98
>> Rue Paul Louis Héroult - BP 253
>> 26106 Romans cedex
>>
>>
>> ------------------------------------------------------------------------------
>> Own the Future-Intel&reg; Level Up Game Demo Contest 2013
>> Rise to greatness in Intel's independent game demo contest.
>> Compete for recognition, cash, and the chance to get your game
>> on Steam. $5K grand prize plus 10 genre and skill prizes.
>> Submit your demo by 6/6/13. http://p.sf.net/sfu/intel_levelupd2d
>> _______________________________________________
>> pmapper-users mailing list
>> pmapper-users@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/pmapper-users
>>
>
>
------------------------------------------------------------------------------
Own the Future-Intel(R) Level Up Game Demo Contest 2013
Rise to greatness in Intel's independent game demo contest. Compete 
for recognition, cash, and the chance to get your game on Steam. 
$5K grand prize plus 10 genre and skill prizes. Submit your demo 
by 6/6/13. http://altfarm.mediaplex.com/ad/ck/12124-176961-30367-2
_______________________________________________
pmapper-users mailing list
pmapper-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pmapper-users

Reply via email to