Реализация сложного поиска
Добрый день? сообщество.
Можете подсказать как реализовать сложный поиск?
— Тип контракта — раздел меню на сайте
— Страна-Регион, Вид недвижимости, life style берутся из ТВ параметра
— Цена задается диапазонами «от 0 до 499 999», «от 500 000 до 1 000 000» и т.д. (тоже из ТВ)
— Код объекта точный поиск (тоже указывается в ТВ)
Извините за наивный вопрос, но не могу понять реализацию совсем (((
Сейчас код такой:
Можете подсказать как реализовать сложный поиск?
— Тип контракта — раздел меню на сайте
— Страна-Регион, Вид недвижимости, life style берутся из ТВ параметра
— Цена задается диапазонами «от 0 до 499 999», «от 500 000 до 1 000 000» и т.д. (тоже из ТВ)
— Код объекта точный поиск (тоже указывается в ТВ)
Извините за наивный вопрос, но не могу понять реализацию совсем (((
Сейчас код такой:
<form action="какой_то.php" method="get">
<span style="font-size: 22px; color:#c00; text-align: center; padding-top: 0px;font-family: Helvetica;">ПОИСК</span>
<select name="l" id="l">
<option value="" selected>Регион</option>
<option value="1">Первый регион</option>
</select>
<select name="c" id="c">
<option value="" selected>Тип контракта</option>
<option value="5">Продажа</option>
<option value="4">Аренда</option>
</select>
<select name="t" id="t">
<option value="" selected>Вид недвижимости</option>
<option value="32">Замок</option>
<option value="6">Вилла</option>
</select>
<select name="s" id="s">
<option value="" selected>Life Style</option>
<option value="13">Море</option>
</select>
<select name="prezzo">
<option value="1" selected="selected">Цена</option>
<option value="2">< 0,5 M</option>
<option value="3">0,5 - 1 M</option>
<option value="4">1 - 2 M</option>
<option value="5">2 - 3 M</option>
<option value="6">> 3 M</option>
</select>
<label>
Код объекта:
<input name="r" type="text" id="r" value="" size="4">
</label>
<label>
<input type="submit" name="button" id="button" value="искать" style="background-color:#C00; color:#FFF">
</label>
<input name="lingua" type="hidden" id="lingua" value="6" />
</form>
Комментарии: 6
mSearch2
pdoResources + GET
Примерно так:
pdoResources + GET
Примерно так:
[[!pdoResources?
&parents=`[[!#GET.parent]]`
&tpl=`test`
]]
Игорь, извините, не совсем понял.
Как этот выбор реализовать формой?
Как этот выбор реализовать формой?
<form action="[[~[[*id]]]]" method="get">
[[!#GET.parent]] - parent это name поля
Вам нужно использовать &where пример:[[!pdoResources?
&includeTVs=`manuf,diag,color`
&where=`{
"manuf":"Sony",
"diag:IN":[65,85],
"color:IN":["black","gray"]
}`
]]
Извините, так и не понял.
Выводить форму поиска понятно
и потом в запрос попадало…
Выводить форму поиска понятно
<form action="[[~[[*id]]]]" method="get">
...
</form>
А вот как <select name="l" id="l">
<option value="" selected>Регион</option>
<option value="1">Первый регион</option>
</select>
Заменить, чтобы выбирал в выпадающее меню то, что в ТВ указано?и потом в запрос попадало…
В общем с поиском разобрался таким образом — руками прописал все варианты выбора (благо их немного), подставил контексты (сайт мультиязычный), получился такой код:
Если не выбрали ничего — смог вывести только способом перечисления всех вариантов:
Вопросы:
1. Как сделать, чтобы если посетитель ничего не выбрал, то не прописывать все варианты в value =""?
2. Как, если не заполнено поле «Код объекта», исключить из строки get-запроса (...?tv|region2=apulia&parent=8&tv|prop_type2=castle&tv|position2=golf&tv|price=0,500000&tv|code=), лишнюю приставку &tv|code= в конце?
<form action="result.html" method="get" id="search_old">
<span>ПОИСК</span>
<select name="tv|region2" id="l">
<option value="apulia,lake_como,lake_garda,lake_maggiore,campania,calabria,emilia_romagna,lazio,liguria,lombardy,marche,piedmont,sardinia,sicily,tuscany,umbria,veneto"selected>Страна-Регион</option>
<option value="apulia">[[%apulia]]</option>
<option value="lake_como">[[%lake_como]]</option>
<option value="lake_garda">[[%lake_garda]]</option>
<option value="lake_maggiore">[[%lake_maggiore]]</option>
<option value="campania">[[%campania]]</option>
<option value="calabria">[[%calabria]]</option>
<option value="emilia_romagna">[[%emilia_romagna]]</option>
<option value="lazio">[[%lazio]]</option>
<option value="liguria">[[%liguria]]</option>
<option value="lombardy">[[%lombardy]]</option>
<option value="marche">[[%marche]]</option>
<option value="piedmont">[[%piedmont]]</option>
<option value="sardinia">[[%sardinia]]</option>
<option value="sicily">[[%sicily]]</option>
<option value="tuscany">[[%tuscany]]</option>
<option value="umbria">[[%umbria]]</option>
<option value="veneto">[[%veneto]]</option>
</select>
<select name="parent" id="l">
<option value="8,9" selected>Тип контракта</option>
<option value="8">Аренда</option>
<option value="9">Продажа</option>
</select>
<select name="tv|prop_type2" id="l">
<option value="castle,palace,agritourism,villa,hotel,land,loft,shop,farmhouse,restaurant,countryhouse,terraced_house,chalet,apartment" selected>Тип недвижимости</option>
<option value="castle">[[%castle]]</option>
<option value="palace">[[%palace]]</option>
<option value="agritourism">[[%agritourism]]</option>
<option value="villa">[[%villa]]</option>
<option value="hotel">[[%hotel]]</option>
<option value="land">[[%land]]</option>
<option value="investment">[[%investment]]</option>
<option value="loft">[[%loft]]</option>
<option value="shop">[[%shop]]</option>
<option value="farmhouse">[[%farmhouse]]</option>
<option value="restaurant">[[%restaurant]]</option>
<option value="countryhouse">[[%countryhouse]]</option>
<option value="terraced_house">[[%terraced_house]]</option>
<option value="chalet">[[%chalet]]</option>
<option value="apartment">[[%apartment]]</option>
</select>
<select name="tv|position2" id="l">
<option value="golf,ski_resorts,town,historical_centers,seaside,lakes,hills" selected>Расположение</option>
<option value="golf">[[%golf]]</option>
<option value="ski_resorts">[[%ski_resorts]]</option>
<option value="town">[[%town]]</option>
<option value="historical_centers">[[%historical_centers]]</option>
<option value="seaside">[[%seaside]]</option>
<option value="lakes">[[%lakes]]</option>
<option value="hills">[[%hills]]</option>
</select>
<select name="tv|price" id="l">
<option value="0,10000000000" selected>Цена</option>
<option value="0,500000"><500K</option>
<option value="500000,1000000">0.5M - 1M</option>
<option value="1000000,2000000">1M - 2M</option>
<option value="2000000,3000000">2M - 3M</option>
<option value="3000000,10000000000">>3M</option>
</select>
<label>
Код объекта:
<input type="text" size="4" value="" id="r" name="tv|code">
</label>
<label>
<input type="submit" id="button" value="искать" style="background-color:#C00; color:#FFF">
</label>
</form>
Все вроде работает.Если не выбрали ничего — смог вывести только способом перечисления всех вариантов:
<option value="golf,ski_resorts,town,historical_centers,seaside,lakes,hills" selected>Расположение</option>
Вопросы:
1. Как сделать, чтобы если посетитель ничего не выбрал, то не прописывать все варианты в value =""?
2. Как, если не заполнено поле «Код объекта», исключить из строки get-запроса (...?tv|region2=apulia&parent=8&tv|prop_type2=castle&tv|position2=golf&tv|price=0,500000&tv|code=), лишнюю приставку &tv|code= в конце?
В ручную конечно мне кажется это не то. Вот так же можно фильтр организовать:
[[!mFilter2?
&element=`msProducts`
&sortby=`rand()`
&parents=`2`
&includeThumbs=`246x246`
&showHidden=`1`
&limit=`12`
&cache=`1`
&suggestions=`1`
&includeTVs=`tonality,base_curve,optical_power`
&filters=`
resource|parent:categories,
ms|article,
msoption|opticalpower,
msoption|color,
msoption|size,
ms|vendor:vendors,
tv|tonality,
tv|base_curve,
`
&suggestionsRadio=`parent:categories,tv|optical_power,ms|article`
&tplOuter=`tpl.mFilter2.outer.lens`
&tpls=`tpl.Product.grid,tpl.Product.list`
&tplFilter.outer.default=`tpl.mFilter2.filter.outer.checkbox.resource`
&tplFilter.row.default=`tpl.mFilter2.filter.checkbox.resource`
&tplFilter.outer.resource|parent=`tpl.mFilter2.filter.outer.resource`
&tplFilter.row.resource|parent=`tpl.mFilter2.filter.row.resource`
&tplFilter.outer.msoption|opticalpower=`tpl.mFilter2.filter.outer.resource`
&tplFilter.row.msoption|opticalpower=`tpl.mFilter2.filter.row.resource`
&tplFilter.outer.ms|article=`tpl.mFilter2.filter.outer.resource`
&tplFilter.row.ms|article=`tpl.mFilter2.filter.row.resource`
&tplPageWrapper=`@INLINE [[+first]][[+prev]][[+pages]][[+next]][[+last]]`
&tplPageFirst=``
&tplPageLast=``
&tplPageFirstEmpty=``
&tplPageLastEmpty=``
&tplPagePrevEmpty=``
&tplPageNextEmpty=``
]]
Тут и выборка по ТВ и выпадающие и прочее.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.