Запомнить выбор в фильтре товаров

Тема в разделе "NetCat", создана пользователем RedoxKit, 6 июн 2014.

  1. RedoxKit

    RedoxKit Создатель

    Регистр.:
    7 окт 2008
    Сообщения:
    25
    Симпатии:
    2
    Здравствуйте!
    Пытаюсь сделать, а точнее уже сделал поиск полям товаров.
    Два параметра поваров являются выпадающими списками, а три - целыми числами.
    При выборе в форме поиска необходимых значений и нажатии кнопки "найти" выводятся соответствующие товары, но в форме поиска введённые значения сбрасываются.
    Пробовал так:
    <select name='srchPat[9]' size='1'>
    <option value=''<?=($srchPat[9]=='' ?" selected='selected'":"");?>>- Все коллекции -</option>
    <option value='1'<?=($srchPat[9]==1 ?" selected='selected'":"");?>>Коллекция 1</option>
    <option value='2'<?=($srchPat[9]==2 ?" selected='selected'":"");?>>Коллекция 2</option>
    <option value='3'<?=($srchPat[9]==3 ?" selected='selected'":"");?>>Коллекция 3</option>
    <option value='4'<?=($srchPat[9]==4 ?" selected='selected'":"");?>>Коллекция 4</option>
    </select>
    </div>
    <div class="parametryAgCollection">
    <div>Цвет:</div>
    <select name='srchPat[10]' size='1'>
    <option value=''>---- Все цвета ----</option>
    <option value='1'<?=($srchPat[10]==1 ?" selected='selected'":"");?>>Цвет 1 </option>
    <option value='2' <?=($srchPat[10]==2 ?" selected='selected'":"");?>>Цвет 2</option>
    <option value='3'<?=($srchPat[10]==2 ?" selected='selected'":"");?>>Цвет 3</option>
    <option value='4'<?=($srchPat[10]==4 ?" selected='selected'":"");?>>Цвет 4</option>
    <option value='5'<?=($srchPat[10]==5 ?" selected='selected'":"");?>>Цвет 5</option>
    <option value='6'<?=($srchPat[10]==6 ?" selected='selected'":"");?>>Цвет 7</option>
    <option value='7'<?=($srchPat[10]==7 ?" selected='selected'":"");?>>Цвет 8</option>
    <option value='8'<?=($srchPat[10]==8 ?" selected='selected'":"");?>>Цвет 9</option>
    </select>
    </div>
    <div class="parametryAgCollectionq qtqqtq">
    <div>Длина</div>
    <input type='text' name='srchPat[5]' size='10' maxlength='16' value='<?=($srchPat[5]?$srchPat[5]:"");?>' placeholder="от">
    <div class="qeqsq"> - </div>
    <input type='text' name='srchPat[6]' size='10' maxlength='16' value='<?=($srchPat[6]?$srchPat[6]:"");?>' placeholder="до">
    </div>
    <div class="parametryAgCollectionq">
    <div>Высота</div>
    <input type='text' name='srchPat[1]' size='10' maxlength='16' value='<?=($srchPat[1]?$srchPat[1]:"");?>' placeholder="от">
    <div class="qeqsq"> - </div>
    <input type='text' name='srchPat[2]' size='10' maxlength='16' value='<?=($srchPat[2]?$srchPat[2]:"");?>' placeholder="до">
    </div>
    <div class="parametryAgCollectionq">
    <div>Толщина</div>
    <input type='text' name='srchPat[3]' size='10' maxlength='16' value='<?=($srchPat[3]?$srchPat[3]:"");?>' placeholder="от">
    <div class="qeqsq"> - </div>
    <input type='text' name='srchPat[4]' size='10' maxlength='16' value='<?=($srchPat[4]?$srchPat[4]:"");?>' placeholder="до">
    </div>
    <div class="parametryAgCollectionqArtycul">
    <div>Артикул</div>
    <input type='text' name='srchPat[0]' size='50' maxlength='255' value='<?=($srchPat[0]?$srchPat[0]:"");?>' placeholder="045">
    </div>
    Не получается.
    Проверял... почему то все параметры srchPat[ХХХ]' пустые, хотя выборка работает и в адресной строке им присвоены значения.
    Подскажите, пожалуйста.
    Спасибо!
     
  2. alterfall

    alterfall Создатель

    Регистр.:
    15 апр 2012
    Сообщения:
    37
    Симпатии:
    2
    У вас возвращаются GET параметры вот их и используйте $_GET[srchPat][1]
    Для использования в виде переменных включите деретиву Перейти по ссылке
     
  3. RedoxKit

    RedoxKit Создатель

    Регистр.:
    7 окт 2008
    Сообщения:
    25
    Симпатии:
    2
    Спасибо.
    А можно немного по подробней?
    включить register_globals это наверное через .htaccess? Но вроде он должен быть выключен для правильной работы netcat?
    И можно пример как использовать $_GET[srchPat][1] в форме поиска.
    Спасибо!
    А ещё не подскажите, как без функционала минимагазин/магазина, можно получают информацию о том, на какой страницы заполнили и отправили форму обратной связи?
    Есть список услуг, на странице подробного описания каждой услуги нужна форма для заказа этой услуги.
    Хотелось бы сделать так, чтобы все заказы на услуги отображались в отдельном разделе одним списком.
    Т.е. надо как то связать название услуги на странице отображения объекта одного компонента (услуги), с компонентом "заказы", чтобы в каждом заказе было понятно на какую услугу он сделан.
    ... а вот как это сделать... не знаю , опыта не хватает.
     
  4. alterfall

    alterfall Создатель

    Регистр.:
    15 апр 2012
    Сообщения:
    37
    Симпатии:
    2
    register_globals на хостинге или в php.ini

    <input type='text' name='srchPat[0]' size='50' maxlength='255' value='<?=($_GET[srchPat][1] ? $_GET[srchPat][1] : null);?>' placeholder="045">

    Перейти по ссылке
    Присылайте себе в письме ссылку на объект или прикрепляйте к письму $fullLink (только если форма составлена в полном отображении тогда сможете передать)
    В админке вы так же можете отображать название инфоблока или раздела из которого была выслано письмо.
    Более подробно на форуме тяжело решать такой вопрос.
     
  5. RedoxKit

    RedoxKit Создатель

    Регистр.:
    7 окт 2008
    Сообщения:
    25
    Симпатии:
    2
    Спасибо!
    Кажется прикрепить к письму $fullLink не получится.
    Делаю так:
    В компоненте "услуги", в полном отображение объекта там где надо вывожу, с использованием nc_objects_list, доп. шаблон компонента "Заказы", в котором в префиксе стоит $addForm, а в альтернативной форме добавления собственно и есть вся форма заказа, а в действии после добавления - код отправки сообщения о заказе на почту администратору.
    Так вот, как в письме администратору сообщить на какую услугу поступил заказ?
    с nc_object_path не понятно, как, в компоненте заказа получить идентификаторы компонента (Компонент "услуги") и объекта (конкретная услуга) той услуги, на странице которой находимся?
     
  6. RedoxKit

    RedoxKit Создатель

    Регистр.:
    7 окт 2008
    Сообщения:
    25
    Симпатии:
    2
    Спасибо большое всё работает.
    Кроме листинга.
    Нашлось 40 объектов соответствующих условиям поиска. При выводе по 10 объектов на странице получился листинг из 4 страниц.
    При переходе ко 2-ой (3-ей и 4-ой), выборка уже не работает, т.е. показываются все объекты, а не отфильтрованные.
    Переход по ссылке $nextLink (следующая страница) вообще не срабатывает.
    URL страницы с результатами фильтрации:.../catalog/tovar/tovar.html?action=index&admin_mode=&srchPat[16]=&srchPat[17]=&srchPat[2]=&srchPat[3]=&srchPat[4]=&srchPat[5]=120&srchPat[0]=&#=Выбрать
    Ссылка на вторую страницу имеет вид .../catalog/tovari/?action=index&admin_mode=&#=Выбрать&curPos=10
    Ссылка на следующую страницу ($nextLink) : .../catalog/tovar/?action=index&admin_mode=&srchPat[16]=&srchPat[17]=&srchPat[2]=&srchPat[3]=&srchPat[4]=&srchPat[5]=120&srchPat[0]=&#=Выбрать&curPos=10
    С этим можно что то сделать? И если да, то как?
     
  7. alterfall

    alterfall Создатель

    Регистр.:
    15 апр 2012
    Сообщения:
    37
    Симпатии:
    2
    Передовайте параметры в ссылках страниц или записывайте в сессию. Сейчас у вас параметры передаются да вот только пустые
     
  8. RedoxKit

    RedoxKit Создатель

    Регистр.:
    7 окт 2008
    Сообщения:
    25
    Симпатии:
    2
    Как передавать параметры в ссылках страниц если листинг страниц выполняется функцией <?= browse_messages($cc_env, 10) ?> и ссылками prevLink и nextLink?
    Странно что не работает, т.к. делаю также как в демо-сайте, в котором всё работает.
    И можно немного по подробнее про "записывайте в сессию.." Это как? Я в php не силён.
    Спасибо!