Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.05.2015, 19:07
Профессор
Отправить личное сообщение для Batyabest Посмотреть профиль Найти все сообщения от Batyabest
 
Регистрация: 14.09.2013
Сообщений: 252

Передача значений по этапам работы скрипта
Привет.
Делаю связанные списки, по примеру с этого сайта: Тыц
Но у меня не получается передать на последний этап работы скрипта все значения. Получается в конце могу получить лишь значение последнего же селекта.
А мне необходимо так, чтобы в конце я смог передать параметры POST на другой скрипт с целью отправки на почту примерно в виде:
Вы выбрали: селект 1 - селект2 - селект3.
Ответить с цитированием
  #2 (permalink)  
Старый 10.05.2015, 19:20
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Ну так выбранные значения предыдущих списков можно и сохранить. К тому же и сами списки в базе могут быть связаны, то есть нельзя получить последний не зная его родителей.
Ответить с цитированием
  #3 (permalink)  
Старый 10.05.2015, 20:10
Профессор
Отправить личное сообщение для Batyabest Посмотреть профиль Найти все сообщения от Batyabest
 
Регистрация: 14.09.2013
Сообщений: 252

Списки в базе связаны индексами цифровыми. Как сохранить мне эти знаения в переменные, чтобы потом на последнем этапе можно скором передать дальше?
Ответить с цитированием
  #4 (permalink)  
Старый 10.05.2015, 22:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Если так как по ссылке, то выбор хранят сами списки, а получение каждого списка, это запрос сервера по по выбору предыдущего.
Ответить с цитированием
  #5 (permalink)  
Старый 10.05.2015, 23:15
Профессор
Отправить личное сообщение для Batyabest Посмотреть профиль Найти все сообщения от Batyabest
 
Регистрация: 14.09.2013
Сообщений: 252

То есть с того примера никак не прикрутить сохранение выбранного?
Ответить с цитированием
  #6 (permalink)  
Старый 11.05.2015, 02:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Я так понимаю, вопрос касаемо примера по ссылке? Ну тогда встречный вопрос - прикрутить к чему?
Пример можно скопировать, запустить и сделать вывод то-ли нужно или нет.

Организация связанных записей в базе может быть построена двояко, либо это одна таблица, в которой двумя полями ее описываются и идентификаторы записей, и их связи, либо это раздельные таблицы связанные по первичным ключам.
Для примера, пусть форма, которая отправляется обычным способом, имеет три списка: область, город, улица. При выводе страницы клиенту список областей может быть стразу заполнен, их не так и много. Если списки всех адресных объектов описаны одной таблицей (для адресов это не лучшее будет, но для примера пойдет), то это будет выборка всех записей, которые не имеют родителя, то есть нулевой уровень. Если же в разных таблицах, то это выборка из таблицы областей.

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

Если список областей будет иметь имя area, городов city, а улиц street, то отправив форму сервер и получит под этими ключами соответствующий выбор пользователя: идентификаторы области, города, улицы. Различие только в том, кому они адресуются, что зависит от организации данных в базе.

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

Последний раз редактировалось laimas, 11.05.2015 в 09:18.
Ответить с цитированием
  #7 (permalink)  
Старый 11.05.2015, 09:17
Профессор
Отправить личное сообщение для Batyabest Посмотреть профиль Найти все сообщения от Batyabest
 
Регистрация: 14.09.2013
Сообщений: 252

У меня таким образом организована база с марками и моделями автомобилей, а также с их модификациями и т.д.
Марки машин, модели, годы выпуска и типы двигателей - это разные 4 таблицы в БД.
Соответственно, как на примере, каждый раз идет запрос в другую таблицу и связь идет по ключу id.
На последнем этапе выводится: Вы выбрали ...
А мне нужно сделать так, чтобы данные из предыдущих этапов выбора также сохранялись, с целью их дальнейшей обработки.
На данном этапе, пока еще не сильно все начало работать можно сделать как-либо иначе. Например, все хранить в одной таблице, но это не совсем удобно будем мне кажется.
Или же лучше ввести в последнюю таблицу с модификациями двигателей дополнительные столбцы с маркой, моделью и годом выпуска?
Полученные данные нужно будет потом передать в другое окно, где пользователь введет свой VIN и там уже отправит все данные на почту.
Кстати, если знаете, где можно найти базу авто для данного случая, также буду благодарен, а то ручками забивать оочень долго.
Ответить с цитированием
  #8 (permalink)  
Старый 11.05.2015, 09:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

В примере с адресами выбор пользователя будет истинным только тогда, когда будут выбраны значения всех трех списков, и пока это не произойдет форму нельзя будет отправить. Исключения могут составлять только города федерального значения: Москва, Питер, Симферополь...

В случае с авто тоже должно быть условие, что выбор, это значит выбор всех четырех параметров: марка, модель, год выпуска и тип двигателя. Если каждый из таких выборов запоминать, чтобы отправить потом серверу, то на клиенте можно по событию onchange списка типа двигателей добавлять в таблицу строку описывающей параметры выбора со скрытыми полями формы, значения которых будут содержать id выбранных параметров. Изменения в списках марки, модели и года выпуска, означает очищение всех списков справа от него и запрос нового списка следующего за ним.
Как только по новым спискам в списке типа двигателей будет сделан выбор, так опять в таблицу добавляется строка со скрытыми полями. И так далее. Имена полей списков будут определять источник данных - имя таблицы.
Отправив форму сервер и получит все наборы выбранные пользователем, запрос по значениям которых в базу вернет описание выбранных параметров. Отправка почтой описания выбора, вывод его на другой странице, это уже забота чисто сервера.
Но кроме выбора из списка нужно давать возможность удаления какого либо выбора, и не только на какой-то другой странице, но и непосредственно во время выбора значений из списков.

Насчет базы по авто не знаю, может Гугл знает.

Последний раз редактировалось laimas, 11.05.2015 в 09:55.
Ответить с цитированием
  #9 (permalink)  
Старый 11.05.2015, 17:19
Профессор
Отправить личное сообщение для Batyabest Посмотреть профиль Найти все сообщения от Batyabest
 
Регистрация: 14.09.2013
Сообщений: 252

То есть как только пользователь выбрал марку авто, добавили скрытое поле с этой маркой в форму?
Потом выбрал модель, опять добавили скрытый инпут.. И т.д.?
А кодом как это сделать подскажете?
Ответить с цитированием
  #10 (permalink)  
Старый 11.05.2015, 18:13
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

То есть как только пользователь выбрал марку авто, добавили скрытое поле с этой маркой в форму?
Потом выбрал модель, опять добавили скрытый инпут.. И т.д.?


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



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Приостановка работы скрипта onejsquestion Общие вопросы Javascript 3 23.12.2016 18:50
Объясните принцип работы скрипта jaxmackey Общие вопросы Javascript 5 06.08.2014 23:19
Скорость работы js скрипта Severtain Общие вопросы Javascript 1 23.05.2013 21:12
Передача массива значений флажков LRCenter Общие вопросы Javascript 2 05.10.2010 19:49
Как переместить результат работы скрипта? Vlaimir Events/DOM/Window 2 31.08.2009 13:52