Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

создание списка с изображением и связь объекта с ним

05.05.2014, 16:08
Гость
Гость

Есть список. При добавлении объекта выбирается с каким пунктом или пунктами списка он соотносится.

На самом сайте этот список выводился в форме для фильтрации в виде выпадающего списка (тег select).

Теперь потребовалось, чтобы в форме для фильтрации этот список выводился списком (тег ul), причем к каждому пункту должна быть прикреплена соответствующая картинка.

Есть ли способы реализовать подобное?
05.05.2014, 16:13
Pavel

Зарегистрирован:
2007-10-20
Сообщений: 55

под гостем написал я

была идея использовать подкатегории и дополнительное поле с изображением, но тогда я не знаю как привязать добавленный объект к этой категории. При варианте, что связь один объект - одна категории, можно было бы добавлять их в соответствующую категорию, но часто объект может соотносится с двумя и более категориями.
06.05.2014, 14:28
Pavel

Зарегистрирован:
2007-10-20
Сообщений: 55

воспользовался советом из темы http://www.netcat.ru/support/forum/razrabotka-sayta/topic_13583.html

Застрял на создании альтернативной форме. с select работает хотя бы на добавление, а с checkbox не работает даже на добавление.

код:
Код:
".listQuery("select distinct Product_Name as name, Message_ID as id from Message34","<input type='checkbox' value='\$data[id]' id='f_Product[\$i]' name='f_Product[\$i]'>
<label for='f_Product[\$i]'></label>
\$data[name]
<br>")."
06.05.2014, 16:12
Pavel

Зарегистрирован:
2007-10-20
Сообщений: 55

Цитата:
воспользовался советом из темы http://www.netcat.ru/support/forum/razrabotka-sayta/topic_13583.html

Застрял на создании альтернативной форме. с select работает хотя бы на добавление, а с checkbox не работает даже на добавление.

Сделал тип поля не текстовым, а "множественный выбор" данные стали заносится в базу данных. Но не получается проставить checked для выбранных элементов в альтернативной форме для изменения
07.05.2014, 11:27
Pavel

Зарегистрирован:
2007-10-20
Сообщений: 55

Код:
".listQuery("select distinct Product_Name as name, Message_ID as id from Message34","<input type='checkbox' value='\$data[id]' id='f_Product[\$i]' name='f_Product[\$i]' ".opt(in_array($data[id], explode(',',$f_Product)), 'checked').">
<label for='f_Product[\$i]'></label>\$data[name]
<br>")."

почему в данном коде in_array($data[id], explode(',',$f_Product)) всегда истина, хотя 100% $data[id] в массиве нет
10.05.2014, 01:30
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Вам немного подправить надо:
Код:
".listQuery("select distinct Product_Name as name, Message_ID as id from Message34","<input type='checkbox' value='\$data[id]' id='f_Product[\$i]' name='f_Product[]' \".opt(in_array(\$data[id], explode(',',\$f_Product_id)), 'checked').\">
<label for='f_Product[\$i]'></label>\$data[name]
<br>")."

А вообще для чекбоксов лучше использовать функцию nc_list_select, там и выбранные элементы можно передавать, и шаблон вывода свой задать. Правда если вам надо в итоге <UL> получить, то надо, конечно, использовать listQuery.

Если вышеуказанный пример не заработает, тогда попробуйте \$f_Product_id исправить на \$GLOBALS['f_Product_id'] - часто помогает. улыбка
12.05.2014, 12:58
Pavel

Зарегистрирован:
2007-10-20
Сообщений: 55

Цитата:
Вам немного подправить надо:

Если вышеуказанный пример не заработает, тогда попробуйте $f_Product_id исправить на $GLOBALS['f_Product_id'] - часто помогает. улыбка

Помогло! Спасибо

Цитата:

А вообще для чекбоксов лучше использовать функцию nc_list_select, там и выбранные элементы можно передавать, и шаблон вывода свой задать. Правда если вам надо в итоге <UL> получить, то надо, конечно, использовать listQuery.

у меня было сделано через nc_list_select и список, но я не знаю, как к элементам этого списка на странице для пользователей привязать картинки
24.05.2014, 19:39
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Можно в шаблоне элемента списка в функции nc_list_select задать:
<li class='myitem-\$value_id'>\$value_name</li>
а потом в CSS'ке прописать background для всех нужных вам классов myitem-NNN.
Но это удобно только в том случае, если картинки вы сами один раз загрузите и пользователю не понадобится их менять. Ведь обычному пользователю будет сложно через файл-менеджер редактировать CSS-файл всякий раз.
Если такая необходимость есть, тогда все-таки надо listquery использовать.
198 196 2014-05-24 19:39:17 13629
Описание проекта