Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   jquery select: name, selected (https://javascript.ru/forum/jquery/42858-jquery-select-name-selected.html)

jk888 12.11.2013 12:37

jquery select: name, selected
 
Здравствуйте, уважаемые.

Вот здесь имеется урок по реализации последовательного выбора на jquery.
С моими совсем не глубокими знаниями явы этот урок легко выполняется. Но для дальнейшего его усовершенствования моих знаний совсем не хватает. А надо совсем не много: задать name и расставить selected.

Если name еще можно сделать тупо так
<select name="'+r.defaultText+'" data-placeholder="'+r.defaultText+'">\
вместо имеющегося
<select data-placeholder="'+r.defaultText+'">\
, то как быть с selected вообще ума не приложу.

И еще. Получается, что в name (в моем случае) будут вставляться русские слова, и возможно даже с посторонними символами, что конечно совсем не желательно. Можно ли сделать еще один параметр для ID товара, что-то типа:
/* конфигурация элементов select */

// Продукт

$productSelect = new SelectBox('Что желаете купить?','Выберите категорию продукта');
$productSelect->addItem('id1633461','Телефоны','phoneSelect',)
			  ->addItem('id35247','Ноутбуки','notebookSelect')
			  ->addItem('id3463471','Планшеты','tabletSelect');

// Типы телефонов

$phoneSelect = new SelectBox('Какой тип телефона вы хотите?', 'Выберите тип телефона');
$phoneSelect->addItem('id27386925','Смартфон','smartphoneSelect')
			->addItem('id3482885','Обычный телефон','featurephoneSelect');

// Смартфоны

$smartphoneSelect = new SelectBox('Какой смартфон вам нужен?','Выберите модель смартфона');
$smartphoneSelect->addItem('id457856823','Samsung Galaxy Nexus')
				 ->addItem('id8926734','iPhone 4S','iphoneSelect')
				 ->addItem('id5782358','Samsung Galaxy S2')
				 ->addItem('id4832645','HTC Sensation');
...
что бы в name вставлять id товара, а не его наименование.

В любом случае, вообщем, моя задача состоит в том, что бы из огромной mysql базы формировать последовательные списки select. Сейчас на сайте использую вот этот урок. Но т.к. база большая (и растет), и все option незримо присутствуют в html, то от этого страница очень долго грузится, и списки неприятно шевелятся, пока не сформируются окончательно. Урок из же из jquery отличный, но постоянно сбрасывается при отправлении формы (name`ы на русском, на самом деле, работают, главное следить, что бы кавычек не было, но все равно ссыкотно почему-то).

Был бы признателен любой помощи (хотя бы с selected).
Спасибо.

jsru_ 12.11.2013 12:59

selected - это уже выбранный элемент, в каком месте ты хочешь реализовать selected? у тебя ведь подгружаются готовые списки

jk888 12.11.2013 13:17

Нужно, что бы выбранные select`ы после отправки формы оставались в том же состоянии, как перед нажатием submit.
Что бы можно было, например, изменить только последний параметр, а не начинать каждый раз весь отбор заново, от первого select`а.

jsru_ 12.11.2013 13:25

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

jk888 12.11.2013 13:35

Подскажите пожалуйста, как это выглядет в виде кода, и в каком месте.

jsru_ 12.11.2013 13:38

выложи свой код на jsfiddle.net

jk888 12.11.2013 13:46

Что-то не открывется :(

А ведь там же все коды уже приведены, кроме chosen.jquery.min.js

jsru_ 12.11.2013 13:49

там нет твоей кнопочки submit, ты подожди чуток или выложи сюда http://learn.javascript.ru/play

jk888 12.11.2013 14:09

Вот выложил, только не работает там что-то, может быть из-за ajax.php, но вообщем весь код там.

jsru_ 12.11.2013 14:13

добавь onclick="return false" к своему сабмиту:

<input type=\'submit\' onclick="функция обработки клика; return false" value=\'Go Go Go\' style=\'padding: 5px;\'>


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