|
|
10.10.2013, 08:15
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
В каком виде вам надо получить список всех значений в поле Brand? Выпадающий список или обычный? Для какой цели он будет нужен?
Вы, конечно, можете вбивать названия брендов в текстовое поле в карточке товара, но я настоятельно не рекомендую делать так, потому что Вам придется тогда подключать еще аяксовые подсказки (чтобы при вводе бренда выводились подходящие варианты написания) и тут, боюсь, во-первых, у Вас мозг взорвется , во-вторых, выборка и поиск по текстовому полю Brand будет очень медленной, будет сильно грузить сервер.
Лучше, если вы все-таки сделаете в вашем компоненте поле типа "Список" и в этот список внесете все значения (в админке это Разработка -> Списки)
Выводить данный заранее набитый перечень брендов в виде выпадающего списка в форме добавления, изменения можно с помощью nc_list_field, а в формах поиска, макетах дизайна пользуйтесь функцией nc_list_select. Описание, как ею пользоваться, есть в руководстве разработчика.
Тот мой фрагмент кода, что вы привели, делает буквально следующее:
Если через адресную строку передано искомое значение и это значение не нулевое, то оно приводится принудительно к положительному целому числу (это защита против крутых хакеров с их любимыми SQL-инъекциями). Это делают функции abs и intval, вложенные одна в другую.
Затем, когда искомое значение уже гарантированно положительное и целое, мы в переменной $query_where формируем условие выборки (описание этой переменной смотрите в руководстве разработчика). Там в качестве примера я привел выборку всех объектов, у которых в поле "формат" указано искомое значение, переданное через адресную строку (srch2format).
Если же через адресную строку эта переменная не передана, то она устанавливается в нулевое значение.
Это понадобится, чтобы при формировании выпадающего списка в форме поиска или в макете дизайна по умолчанию был выбран вариант "Все" (или "-- выберите --", у кого как).
|
|
|
10.10.2013, 09:17
|
|
Гость
Гость
|
Вы конечно шутник), но это все очень даже серьезно)
1) Нужно получить выпадающий список.
2) Для выбора бренда в каталоге с товарами.
Вы сказали, что не рекомендуется вбивать наименования в поле Brand, в карточке товара. Но как тогда определить бренд этого товара?)
Вот пример "www.lamoda.ru/clothes/zhenskaya-odezhda/" выборки, которую я хочу реализовать у себя на сайте.
Долго такое делать?)
|
|
|
10.10.2013, 09:54
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Ну вот, раз нужен выпадающий список брендов, то и используйте схему с созданием Списка. Создавайте в компоненте "Товар" поле Бренд, тип поля "Список", в формате укажите латинскими буквами название вашего списка брендов. И тогда при редактировании товаров в админке, будет показываться этот перечень брендов, который заранее набили в Список.
Поэтому в редакторе товаров Бренд надо будет не набивать, а выбирать мышкой.
Это что касается редактирования товаров.
А если говорить про форму поиска (выборки), то делайте nc_list_select, в котором укажите в параметрах название Списка, который нужно отобразить в виде выпадающего списка. Будет именно так, как на лямоде, только без галочек возле названий.
Разве Вы уже не сделали такие выпадающие списки в форме выборки(поиска)?
Когда вы сделаете в форме это поле, которому зададите например name='searchBrand', то в системных настройках компонента там где будете вставлять выборку товаров, в коде и указывайте название переменной $searchBrand (вместо $srch2format в моем примере).
Должно все получиться.
|
|
|
10.10.2013, 16:18
|
|
Гость
Гость
|
"Должно все получиться" - это явно не про меня...) Ну или по крайней мере не с 1-ого раза)
НО, все же "что-то" у меня получилось:
1) Вывел список с брендами.
все...)
selected не хочет работать, выборка не производится потому, что я не могу понять, что нужно дописать в "Системные настройки".
Вывод списка:
Код:<?=nc_list_select ("listBrand", "brand", $f_brand_id, "", 1, "<select name='f_\$field_name'>", "<option value='\$value_id' \$value_selected>\$value_name</option>", "</select>", "<option value=''>Выбрать бренд</option>")?>
Форма с поиском:
Код:<form method='get' action='' id='searchForm'>
<input type='hidden' name='recNum' value='<?=$recNum?>' id='recNum'>
<input type='hidden' name='sort' value='<?=$sort?>' id='sort'>
<input type='hidden' name='brand value='<?=$sample?>' id='sample'>
<?=($search?"<input type='hidden' name='search' value='$search'>":NULL)?>
</form>
Добавил в "Системные настройки":
Код:if($sample=='brand'){$query_where='brand DESC';} (вроде как эта строчка должна делать выборку по бренду...)
И в догонку - еще у меня выводилось название бренда в корзине с помощью:
Код:<?
$brand = $db->get_var("Select brand from Message2002 where name='".$f_name."'");
$array_brand = explode(':',$brand)
?>
Теперь brand - список. Как вывести наименование бренда в списке из базы, увы, не знаю)
|
|
|
13.10.2013, 08:40
|
|
Гость
Гость
|
Руслан, куда же Вы пропали... Быть может, Вы даже заблудились в лесу и про это никто не знает... Но если это не так, я точно уверен в этом, то очень прошу Вас, возвращайтесь назад к нам)
|
|
|
14.10.2013, 15:59
|
|
Руслан Густокашин
Студия Вэлпис
Зарегистрирован: 2012-02-06
Сообщений: 962
|
Здравствуйте! К счастью, не заблудился и не потерялся Но, к сожалению, очень занят сейчас - заказчики ждут тоже своих программ Поэтому не могу сейчас сосредоточиться и толком вникнуть в вашу задачку, да что-то по ней посоветовать. Хотя, уверен, дело простейшее. :-)
Попробуйте проанализировать, как должен работать рекомендованный мною код, чтобы понять принцип его действия. Тогда Вы сможете понять причину, почему что-то не работает. Хотя, по себе знаю, нелегко это - разбираться в полной неизвестности, когда опыт в какой-то области невелик.
|
|
|
15.10.2013, 18:26
|
|
Гость
Гость
|
Дело наверняка проще не куда, да и наверное Вы не 1 раз её реализовывали)
Может быть, если вдруг, каким-то чудесным образом, у Вас появится пару минут свободного времени, то вот весь код, который я смог собрать для выполнения моей цели, но там явно чего-то не хватает: stylish-cherries.ru/test.txt
Раздел с реализуемой страничкой: stylish-cherries.ru/catalog/women/
А вот те задачи, которые передо мной стоят:
1) Форма с поиском по "Имени" и по "Бренду" (бренд у нас в качестве списка). Желательно, если можно будет вводить сразу "имя" вместе с "брендом", например: Платье Incity (и чтобы были подсказки под полем тех названий имени и бренда, которые существуют).
2) Выборка по бренду (из списка), по цене (мин., до макс.) и по обычному полю (допустим размер и т.п.)
3) Ну и последнее - это сортировка. Нужно добавить сортировку по алфавиту названий и брендов.
После всего, сделать эти 3 вещички: поиск, сортировка и выборка - взаимосвязанными 
P.S. Вы можете сделать меня счастливым )))
Огромное Вам СПАСИБО за проделанный труд!)
|