InfernoLan

Несколько чекбоксов в поисковом поле

Recommended Posts

Здравствуйте!

Задача создать поле с несколькими чекбоксами, как во вкладке "Все" в расширенном поиске, там есть поле "Комнат" и там можно выбрать несколько вариантов (1,2,3,4+).

Как создать такое же поле для новой формы поиска?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

rumantic, это не то, я не про поисковые формы, а про поля которые добавляются в поисковую форму.

Если выбрать вкладку "Все" и перейти в режим расширенный, то, там есть поле "Комнат 1 2 3 4+"

Как сделать такой же выбор чекбоксов в одном поле?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

пока это возможно только вручную на основной вкладке. а для остальных вкладок в зависимости от того как у вас с программированием.

Код для основной вкладки

<tr>

<td>{$L_ROOMS1}</td>

<td>

{if isset($smarty.request.room_count) && is_array($smarty.request.room_count)}

<input type="checkbox" name="room_count[]" value="1"{if in_array(1,$smarty.request.room_count)} checked="checked"{/if} /> 1

<input type="checkbox" name="room_count[]" value="2"{if in_array(2,$smarty.request.room_count)} checked="checked"{/if} /> 2

<input type="checkbox" name="room_count[]" value="3"{if in_array(3,$smarty.request.room_count)} checked="checked"{/if} /> 3

<input type="checkbox" name="room_count[]" value="4"{if in_array(4,$smarty.request.room_count)} checked="checked"{/if} /> 4+

{else if isset($smarty.request.room_count)}

<input type="checkbox" name="room_count[]" value="1"{if $smarty.request.room_count==1} checked="checked"{/if} /> 1

<input type="checkbox" name="room_count[]" value="2"{if $smarty.request.room_count==2} checked="checked"{/if} /> 2

<input type="checkbox" name="room_count[]" value="3"{if $smarty.request.room_count==3} checked="checked"{/if} /> 3

<input type="checkbox" name="room_count[]" value="4"{if $smarty.request.room_count>3} checked="checked"{/if} /> 4+

{else}

<input type="checkbox" name="room_count[]" value="1" /> 1

<input type="checkbox" name="room_count[]" value="2" /> 2

<input type="checkbox" name="room_count[]" value="3" /> 3

<input type="checkbox" name="room_count[]" value="4" /> 4+

{/if}

</td>

</tr>

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

пока это возможно только вручную на основной вкладке. а для остальных вкладок в зависимости от того как у вас с программированием.

Код для основной вкладки

<tr>

<td>{$L_ROOMS1}</td>

<td>

{if isset($smarty.request.room_count) && is_array($smarty.request.room_count)}

<input type="checkbox" name="room_count[]" value="1"{if in_array(1,$smarty.request.room_count)} checked="checked"{/if} /> 1

<input type="checkbox" name="room_count[]" value="2"{if in_array(2,$smarty.request.room_count)} checked="checked"{/if} /> 2

<input type="checkbox" name="room_count[]" value="3"{if in_array(3,$smarty.request.room_count)} checked="checked"{/if} /> 3

<input type="checkbox" name="room_count[]" value="4"{if in_array(4,$smarty.request.room_count)} checked="checked"{/if} /> 4+

{else if isset($smarty.request.room_count)}

<input type="checkbox" name="room_count[]" value="1"{if $smarty.request.room_count==1} checked="checked"{/if} /> 1

<input type="checkbox" name="room_count[]" value="2"{if $smarty.request.room_count==2} checked="checked"{/if} /> 2

<input type="checkbox" name="room_count[]" value="3"{if $smarty.request.room_count==3} checked="checked"{/if} /> 3

<input type="checkbox" name="room_count[]" value="4"{if $smarty.request.room_count>3} checked="checked"{/if} /> 4+

{else}

<input type="checkbox" name="room_count[]" value="1" /> 1

<input type="checkbox" name="room_count[]" value="2" /> 2

<input type="checkbox" name="room_count[]" value="3" /> 3

<input type="checkbox" name="room_count[]" value="4" /> 4+

{/if}

</td>

</tr>

В таком режиме работает нормально! Создала свои переменные вот в таком виде и не работает(((( Где накосячила или недосмотрела?

 

{if isset($smarty.request.van) && is_array($smarty.request.van)}
<input type="checkbox" name="van[]" value="1"{if in_array(1,$smarty.request.van)} checked="checked"{/if} /> <div class="ez-checkbox2">1</div>
<input type="checkbox" name="van[]" value="2"{if in_array(2,$smarty.request.van)} checked="checked"{/if} /> <div class="ez-checkbox2">2 </div>
<input type="checkbox" name="van[]" value="3"{if in_array(3,$smarty.request.van)} checked="checked"{/if} /> <div class="ez-checkbox2">3 </div>
<input type="checkbox" name="van[]" value="4"{if in_array(4,$smarty.request.van)} checked="checked"{/if} /> <div class="ez-checkbox2">4+ </div>
{else if isset($smarty.request.van)}
<input type="checkbox" name="van[]" value="1"{if $smarty.request.van==1} checked="checked"{/if} /> <div class="ez-checkbox2">1 </div>
<input type="checkbox" name="van[]" value="2"{if $smarty.request.van==2} checked="checked"{/if} /> <div class="ez-checkbox2">2 </div>
<input type="checkbox" name="van[]" value="3"{if $smarty.request.van==3} checked="checked"{/if} /> <div class="ez-checkbox2">3 </div>
<input type="checkbox" name="van[]" value="4"{if $smarty.request.van>3} checked="checked"{/if} /> <div class="ez-checkbox2">4+ </div>
{else}
<input type="checkbox" name="van[]" value="1" /> <div class="ez-checkbox2">1 </div>
<input type="checkbox" name="van[]" value="2" /> <div class="ez-checkbox2">2 </div>
<input type="checkbox" name="van[]" value="3" /> <div class="ez-checkbox2">3 </div>
<input type="checkbox" name="van[]" value="4" /> <div class="ez-checkbox2">4+ </div>
{/if}

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А где вы обабатываете свои данные ? проверьте что у вас выводится в массиве (там где вы обрабатывали свои значения) print_r($where_array);

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А где вы обабатываете свои данные ? проверьте что у вас выводится в массиве (там где вы обрабатывали свои значения) print_r($where_array);

Форма поиска расширенная на странице категорий...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Форма поиска расширенная на странице категорий...

Вы добавляете новый элемент, но ни где его не обрабатываете. Соответственно по этим параметрам ни чего искаться не будет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вы добавляете новый элемент, но ни где его не обрабатываете. Соответственно по этим параметрам ни чего искаться не будет.

Где нужно добавить обработчик?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1. создать локальную форму поиска.

2. создать template_search.php

3. в нем создать условие обработки

4. вывести в шаблон

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Взяла шаблон standart_search_form.tpl

 

Вывела вот такой код:

 

<div class="search_cont">
<div id="simple_search"{if isset($smarty.request.extended_search)} style="display:none;"{/if}>
<form method="get" action="{$estate_folder}/index.php">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td class="sch" >
{$structure_box}
</td>
{if $property_type_list ne ''}
<td class="sch" >
{$property_type_list}
</td>
{/if}
{if $region_list ne ''}
<td class="bts">
{$region_list}
</td>
{/if}
{if $district_list ne ''}
<td class="bts">
{$district_list}
</td>
{/if}
</tr>
<tr>
<td class="sch" >
{$L_PRICE} {$L_FROM}<input type="text" class="price_from price_field" name="price_min" value="{if isset($price_min)}{$price_min|number_format:0:'':' '}{else}0{/if}"/>
</td>
<td class="sch" >
{$L_TO} <input type="text" class="price_for price_field" name="price" value="{if isset($price) && $price!=0}{$price|number_format:0:'':' '}{else}{$max_price|number_format:0:'':' '}{/if}"/>
</td>
<td class="bts">
<div class="ez-checkbox">Спальни:</div>
{if isset($smarty.request.spalni) && is_array($smarty.request.spalni)}
<input type="checkbox" name="spalni[]" value="1"{if in_array(1,$smarty.request.spalni)} checked="checked"{/if} /> <div class="ez-checkbox2">1</div>
<input type="checkbox" name="spalni[]" value="2"{if in_array(2,$smarty.request.spalni)} checked="checked"{/if} /> <div class="ez-checkbox2">2 </div>
<input type="checkbox" name="spalni[]" value="3"{if in_array(3,$smarty.request.spalni)} checked="checked"{/if} /> <div class="ez-checkbox2">3 </div>
<input type="checkbox" name="spalni[]" value="4"{if in_array(4,$smarty.request.spalni)} checked="checked"{/if} /> <div class="ez-checkbox2">4+ </div>
{else if isset($smarty.request.spalni)}
<input type="checkbox" name="spalni[]" value="1"{if $smarty.request.spalni==1} checked="checked"{/if} /> <div class="ez-checkbox2">1 </div>
<input type="checkbox" name="spalni[]" value="2"{if $smarty.request.spalni==2} checked="checked"{/if} /> <div class="ez-checkbox2">2 </div>
<input type="checkbox" name="spalni[]" value="3"{if $smarty.request.spalni==3} checked="checked"{/if} /> <div class="ez-checkbox2">3 </div>
<input type="checkbox" name="spalni[]" value="4"{if $smarty.request.spalni>3} checked="checked"{/if} /> <div class="ez-checkbox2">4+ </div>
{else}
<input type="checkbox" name="spalni[]" value="1" /> <div class="ez-checkbox2">1 </div>
<input type="checkbox" name="spalni[]" value="2" /> <div class="ez-checkbox2">2 </div>
<input type="checkbox" name="spalni[]" value="3" /> <div class="ez-checkbox2">3 </div>
<input type="checkbox" name="spalni[]" value="4" /> <div class="ez-checkbox2">4+ </div>
{/if}
</td>
<td class="bts">
<div class="ez-checkbox">Ванны:</div>
{if isset($smarty.request.van) && is_array($smarty.request.van)}
<input type="checkbox" name="van[]" value="1"{if in_array(1,$smarty.request.van)} checked="checked"{/if} /> <div class="ez-checkbox2">1</div>
<input type="checkbox" name="van[]" value="2"{if in_array(2,$smarty.request.van)} checked="checked"{/if} /> <div class="ez-checkbox2">2 </div>
<input type="checkbox" name="van[]" value="3"{if in_array(3,$smarty.request.van)} checked="checked"{/if} /> <div class="ez-checkbox2">3 </div>
<input type="checkbox" name="van[]" value="4"{if in_array(4,$smarty.request.van)} checked="checked"{/if} /> <div class="ez-checkbox2">4+ </div>
{else if isset($smarty.request.van)}
<input type="checkbox" name="van[]" value="1"{if $smarty.request.van==1} checked="checked"{/if} /> <div class="ez-checkbox2">1 </div>
<input type="checkbox" name="van[]" value="2"{if $smarty.request.van==2} checked="checked"{/if} /> <div class="ez-checkbox2">2 </div>
<input type="checkbox" name="van[]" value="3"{if $smarty.request.van==3} checked="checked"{/if} /> <div class="ez-checkbox2">3 </div>
<input type="checkbox" name="van[]" value="4"{if $smarty.request.van>3} checked="checked"{/if} /> <div class="ez-checkbox2">4+ </div>
{else}
<input type="checkbox" name="van[]" value="1" /> <div class="ez-checkbox2">1 </div>
<input type="checkbox" name="van[]" value="2" /> <div class="ez-checkbox2">2 </div>
<input type="checkbox" name="van[]" value="3" /> <div class="ez-checkbox2">3 </div>
<input type="checkbox" name="van[]" value="4" /> <div class="ez-checkbox2">4+ </div>
{/if}
</td>
</tr>
<tr>
<td class="sch" >
 
</td>
 
<td class="sch" >
 
</td>
 
<td class="bts">
 
</td>
 
<td class="bts">
<!--<input type="submit" name="search" value="{$L_GO_FIND}" class="btn btn-primary" />-->
<button><p>Найти объекты</p><img src="{$estate_folder}/template/frontend/{$current_theme_name}/img/search.png" value="{$L_GOSEARCH}"></button>
</td>
 
</tr>
</tbody>
</table>
</form>
</div>
</div>
 
Подключила в layout_full.tpl

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

))) В таком случае проще сделать поле типа select_box

Тогда юзер не сможет делать выборку по нескольким параметрам, например 2,3 ванных комнаты!

По поводу select_box я хотела к Вам с другим вопросом пристать)))) вывод стоимости, т.е. кода отображается стоимость 0=>1.000, 1.000=>5.000, 5.000=>10.000 и т.д.... без от и до, а стоимость при этом в карточке safe_string

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Тогда юзер не сможет делать выборку по нескольким параметрам, например 2,3 ванных комнаты!

По поводу select_box я хотела к Вам с другим вопросом пристать)))) вывод стоимости, т.е. кода отображается стоимость 0=>1.000, 1.000=>5.000, 5.000=>10.000 и т.д.... без от и до, а стоимость при этом в карточке safe_string

Делать выбоку из общего массива цены по шагово. Нудный процесс. проще от и до.

а вот чекбокс вам нужно сделать обработку, хотя бы на проверку нажат он или нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Делать выбоку из общего массива цены по шагово. Нудный процесс. проще от и до.

а вот чекбокс вам нужно сделать обработку, хотя бы на проверку нажат он или нет

Я не знаю, как это делается(((

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Я не знаю, как это делается(((

можете заказать доработку

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Делать выбоку из общего массива цены по шагово. Нудный процесс. проще от и до.

 

Для кого проще? Для верстальщика-программиста или для пользователя-искальщика?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас