0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 4

Получить данные объекта, выбранного в селекторе

09.11.2015, 00:49. Показов 1528. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть сущность Products, у каждого продукта есть тайтл, цена.
В контролере продукта я создал метод "калькулятор".
Во вьюхе калькулятора, я создал select, по коду из интернета
Code
1
<%= select("product", "product_id", @products.collect {|p| [ p.title, p.id ] }, {prompt: 'Select Product'}) %>
в принципе, сам селектор работает, и выводит там список товаров, которые я создал.
Как сделать так: при выборе в селекторе конкретного товара, снизу выводилась его цена?

Под словом "как" я понимаю не html разметку, а конкретно код руби во вьюхе: как правильно обратиться к данным, чтобы они отобразились.

Делаю некое подобие калькулятора, то есть пользователь выбирает товар, ставит пару галочек, и снизу должна выводиться конечная цена.

Кстати, за одно спрошу, правильно ли я начал делать, что создал метод калькулятора в контролере продукта, или мне следовало создать отдельный контролер для калькулятора?

P.S. я новичок
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2015, 00:49
Ответы с готовыми решениями:

Получить идентификатор выбранного объекта
В процессе работы на страницу добавляется html код(картинки и текст). При щелчке по каждой картинке с текстом нужно загрузить следующую...

Как получить данные из объекта?
Подключаю файл *.tlb, далее создаю объект &quot;Frame&quot;, он создается с параметрами по умолчанию, далее хочу изменить его размер или получить...

Как найти элементы внутри выбранного объекта?
На странице есть такой код (несколько раз): &lt;div class=&quot;goalContent&quot;&gt; &lt;h6&gt; &lt;a href=&quot;goal.php?id=&lt;?php echo $goal?&gt;&quot;...

6
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
09.11.2015, 21:49
Цитата Сообщение от bzvyagintsev Посмотреть сообщение
Как сделать так: при выборе в селекторе конкретного товара, снизу выводилась его цена?
Снизу - это где? На странице? Вам надо менять данные на странице не перезагружая её? Вам нужен JavaScript.
И что за калькулятор? Наверное "Корзина" куда складывается выбранный для покупки товар? Посмотрите как реализовано в "Agile Web Development with Rails 4" от The Pragmatic Programmers, а именно Part II, может быть посетят светлые мысли...
0
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 4
09.11.2015, 21:56  [ТС]
Кингу читаю.
Между товаров и корзиной есть этап - калькулятор.
То есть: человек выбирает товар, потом жмет "рассчитать количество", и потом со стр калькулятора добавляет его в корзину.

Вопрос не в этом. На странице калькулятора должна быть возможность из выпадающего списка выбрать любой товар, то есть возможность рассчитать количество и цену для любого товара на стр калькулятора.

Поэтому вопрос такой:
Я создал селектор, в котором в выпадающем списке можно выбрать товар. А как выбранный в селекторе товар сохранить в переменную, например, в @product (или как еще?), чтобы в дальнейшем я мог выводить информацию @product.price @product.name.

Понятно, что для динамического обновления информации на странице без обновления самой странице, нужен AJAX. Но вопрос сейчас не в этом.
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
09.11.2015, 22:15
Например сохраните данные в атрибут data(вы же используете HTML5) так
Rails
1
2
3
4
5
select(report, "campaign_ids") do
  available_campaigns.each do |c|
    content_tag(:option, c.name, value: c.id, data: { tags: c.tags.to_json })
  end
end
И используйте их по событию onchange
P.S.
Цитата Сообщение от bzvyagintsev Посмотреть сообщение
для динамического обновления информации на странице без обновления самой странице, нужен AJAXJavaScript
AJAX вам нужен будет для динамичного "общения" страницы фронтенда с бэкендом.
0
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 4
10.11.2015, 00:40  [ТС]
Правильно ли я понял, что Вы предлагаете, записать в атрибуты каждой опции (товара) все необходимые для меня данные? То есть, чтобы при загрузке страницы, у всех товаров сразу в атрибутах была прописана, например, цена?

Просто я сначала думал, что нужно при выборе какой-нибудь опции (товара), записывать ее в переменную (@product), после этого на страницу выводятся характеристики уже "этой переменной" из БД (@product.price). Поэтому я и думал использовать AJAX: чтобы обновлять эту переменную без перезагрузки страницы, ведь нужно было бы каждый раз получать эти характеристики из БД)

Конкретно сейчас пробую применить вот этот код:

Code
1
2
3
4
5
<%= select(@products, "products_id") do %>
  <% @products.each do |p|%>
    <%= content_tag(:option, p.title, value: p.id, data: { tags: p.price_piece.to_json }) %>
  <% end %>
<% end %>
И если я правильно понимаю, в список опций выводятся товары, с атрибутом, в который записывается цена товара. Получается следующее:

Code
1
2
3
4
<select name="#<Product::ActiveRecord_Relation:0x9bf7570>[products_id]" id="__Product::ActiveRecord_Relation:0x9bf7570_products_id">
    <option value="1" data-tags="100.0">Товар 1</option>
    <option value="2" data-tags="120.0">Товар 2</option>
</select>
Буду пробовать дальше... Единственное, что напрягает мой разум, это количество необходимой для расчета цены информации: ширина, длина, толщина, цена
0
the hardway first
Эксперт JS
 Аватар для j2FunOnly
2475 / 1847 / 910
Регистрация: 05.06.2015
Сообщений: 3,610
10.11.2015, 01:20
Цитата Сообщение от bzvyagintsev Посмотреть сообщение
количество необходимой для расчета цены информации: ширина, длина, толщина, цена
Я ж не знаю ни реализации, ни интерфейсов, ни уровней отделения контроллеров от данных(может у вас реализованы промежуточные классы... будь-то фабрика, фасад, декораторы или еще что) , как у вас все устроено...
Тут уж вам решать что оптимальнее: отдать все данные клиенту или дергать их из базы по запросу. К.м.к. тут больше вопрос по архитектуре приложения, чем конкретно Ruby и Ruby on Rails.
0
0 / 0 / 0
Регистрация: 09.11.2015
Сообщений: 4
10.11.2015, 13:44  [ТС]
Смотрите. У меня по сути сейчас вообще ничего нету) просто контроллер товаров) в этом контроллере я создал метод калькулятор (возможно я вынесу его в отдельный контроллер но это пока неважно).
И приложение планирую строить вокруг этого калькулятора)

Я бы хотел услышать - как делать правильнее) Если в калькуляторе нужно вызывать: картинку товара, его габариты, цену за метр. Товаров всего порядка 50.

Как будет правильно: сразу для 50 товаров выводить по 5 атрибутов или получать данные только когда пользователь выберет в калькуляторе определенную опцию (товар) ?

Что вообще больше ресурсов требует? Загрузить сразу под 150 атрибутов или выполнить 1 запрос к БД уже на загруженной страничке?)))

Добавлено через 7 минут
Тут можно ссылки кидать? Я хочу сделать вот такой калькулятор на rails
http://decoproduct.ru/calculate/51

Он вообще написан на ангулар. А я не знаю как лучше подступиться к такому калькулятору на рельсах)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.11.2015, 13:44
Помогаю со студенческими работами здесь

Создать ini файл для каждого выбранного объекта и категории теста
Привет! Я делаю тест и возникла проблема . в Delphi с форме1 где поставил два Combobox и кнопку далее. в первым Combobox у меня объекты...

Получить индекс выбранного элемента в СЗ
Здравствуйте. 1с8. ЧТо-то туплю. Как получить индекс выбранного элемента в ТЗ. Получаю так Элементы.ТЗ.ТекущаяСтрока. Но это не то

Получить значение выбранного radiobutton
Есть html с радиобатоннами &lt;input type=&quot;radio&quot; class=&quot;attribute_radio&quot; name=&quot;group_4&quot; value=&quot;Да&quot;&gt; &lt;input type=&quot;radio&quot;...

Получить номер выбранного ListView
Здравствуйте. Заполняю ListView (он просто лежит в TreeView не обращайте внимание) из базы данных. Мне нужно получить номер...

Изменить данные в зависимости от выбранного пункта меню
Всем доброго времени суток! Сразу оговорюсь, что web-программированием раньше не занимался, но когда-то приходится начинать. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

Новые блоги и статьи
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
Последние результаты исследования от команды MCM (октябрь 2025 г.)
Programma_Boinc 29.10.2025
Последние результаты исследования от команды MCM (октябрь 2025 г. ) Поскольку мы продолжаем изучать гены, которые играют ведущую роль в развитии рака, в рамках проекта "Картирование раковых. . .
Мысли в слух
kumehtar 29.10.2025
Обнаружил, что мысли лучше писать короткими фразами. Таким образом внимание читателя успевает охватить всю фразу сразу, за один раз, не соскакивая и не прерываясь. А если писать это длинным текстом,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru