Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как получить данные из селекта (https://javascript.ru/forum/dom-window/56001-kak-poluchit-dannye-iz-selekta.html)

laimas 26.05.2015 09:19

Цитата:

Сообщение от makalet
laimas, в смысле, определяться? Если на вывод данных, то по имени селекта. Если я понял правильно

Список на странице, это всего лишь элемент для выбора. Но он что пассивен для сервера или же как принадлежащий форме будет отправлен на сервер? А если будет отправлен, то сервер получит выбранное в нем значение. А у вас значения опций списка, это $Manufacture, но не ID. Так как же поймет сервер при получении формы что выбрано? Поэтому еще раз вопрос - что определят товар в вашей базе, какое поле?

makalet 26.05.2015 09:28

laimas, скорее всего ID должен определять товар. Я передавал $Manufacture и $Model для того, чтобы записать в другую таблицу. Затем сделаю распечатку чека на выбранные комплектующие. Если я передам ID, то получу в поле только ID, но как записать вместо этого айди соответствующий товар с ID, который находится в таблице с товарами(например, процессоров).
У меня сборка для комплектации находится в другой таблице. Там поля типа процессор, кулер и т.д. Вот я и хочу записать значение всех селектов в столбцы

kostyanet 26.05.2015 09:32

Цитата:

Сообщение от laimas
что определят товар

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

Профтыкать в равенство where все пары какие имеются и получишь ту самую единственную строку.

Для расширения мышления: работа через id всего лишь вариант оптимизации и повышения эффективности. Для отождествления записи в таблице никакие ID нахер не нужны. Без них все отождестволяется нормально как и предусмотрено идеей SQL.

kostyanet 26.05.2015 09:36

Цитата:

Сообщение от makalet
Если я передам ID, то получу в поле только ID, но как записать вместо этого айди соответствующий товар с ID, который находится в таблице с товарами(например, процессоров).

Еще один забрел не на тот форум. Вам на sql.ru сперва, а потом уже ява-скрипты...

makalet 26.05.2015 09:41

kostyanet, возможно. Ещё надо учиться, учиться, учиться. Да, у меня ужасный, отвратительный, гнилой и т.п. код, но для меня задача остается актуальной. Картинки, цена выбранного товара я получаю. Остается скрывать ИЗНАЧАЛЬНО цену и картинку до тех пор, пока не будет выбран товар в селекте.

kostyanet 26.05.2015 09:44

Вы не собираетесь учиться, вам надо домучить свою бредятину чтобы она завтра работала, а что будет послезавтра - о том думать нация не велит. А послезавтра у вас будет не 6 id в дата-тегах, а 66, а после-после-завтра 666 и так далее. Единственная надежда что завтра и тем более послезавтра не наступят никогда и только день сурка ваша надежда.

laimas 26.05.2015 09:46

Цитата:

Сообщение от makalet
скорее всего ID должен определять товар.

Не скорее всего, а именно ОН! А значит список должен формироваться таким:
<select class='chosen' id='chosenmak' name='maker' >
      <option value="" value='' data-price=''>-- Выбрать --</option>
<?php
foreach ($arr_get as $value)  echo '<option data-price="'.$value['Price'].'" data-image="'.PATH_IMAGE.$value['photo'].'" value="'.$value['ID'].'">'.$value['Manufacture']." ".$value['Model'].'</option>';
?>
      </select>

Откуда берется $Manufacture не понятно, если она определена ранее, еще ладно, но по уму, если это значение определяется полем другой sql-таблицы (У меня сборка для комплектации находится в другой таблице. Там поля типа процессор, кулер и т.д.), а не той что запросом вернула $arr_get, то все параметры товара $value['ID'] должны получаться вложенным запросом к этой (этим) таблице.

PATH_IMAGE - константа определяющая путь к фото товаров, а $value['photo'] должно быть только именем фото в базе, иначе при необходимости изменения структуры каталогов придется все переписывать в базе.

При получении формы выбранное значение списка будет определять ID выбранного товара, по которому уже запросами к базе можно всегда получить его параметры из таблицы и связанных таблиц. А атрибуты data опций хранящие эти параметры для клиентского скрипта.

PS. Именно так строка должна формироваться, ибо в вашем коде ошибки в конструкции echo. И пробелы лишние ни к чему.

laimas 26.05.2015 09:48

Цитата:

Сообщение от kostyanet
Узость мышления детектед. Без всяких ключей можно получить нужный кортеж имея все необходимые параметры на входе.

Кыш из под ног, а то на хвост еще наступлю, будешь на таблетки работать. Бабушку свою учи несмышленыш. Несешь понос и даже не понимаешь сам, что это бред.

kostyanet 26.05.2015 09:57

Идея SQL заключается в хранении данных без номеров строк и смещений - в отношениях, которые имеют именованные параметры типа имя-значение. То есть хранится все х знает как, а выбирается то, что нужно и в том виде и в том порядке, которые определены в сценарии запроса. Применение числовых идентификаторов не более чем, идентификатором может быть любое отношение если его значение уникально для таблицы. Достаточно сделать unique key на поле скажем prod_name и prod_name может служить идентификатором, поскольку драйвер вам не даст завести 2 одинаковых имени продукта.

Однако что такое одинаковое имя для компа и для человека? Например для человека это одно и то же

RF(GL) 6532091
RF (GL) 6532091

а для компа - два разных имени. Для защиты от бескультурья, для повышения эффективности запросов, для экономии ресурсов, унификации, оптимизации и тп - вместо каких угодно идентификаторов применяют - числа. Только поэтому, а не потому что без чисел нельзя обойтись. Запросто можно, сущность SQL в том и состоит что можно.

makalet 26.05.2015 10:01

laimas, отдельное спасибо за демонстрацию примера, с помощью которого не надо было создавать мне $ID = $value['ID'] и т.д.
Но как теперь скрывать ИЗНАЧАЛЬНО цену и картинку до тех пор, пока не будет выбран товар в селекте.


Часовой пояс GMT +3, время: 02:10.