Цитата:
Другими словами - достаточно одного обработчика события onchange набора списков, чтобы построить все списки. А "последний выбор в 4-ом списке, а соответственно в 4-й список попадает некое значение правильно" к построению списков отношения не имеет. Если для всех списков единый обработчик, значит в нем должна быть проверка текущего списка, и если это последний, значит это конечная цель - нужно его значение, получайте. |
тобишь вот таким образом я не получу значение List4 ,?
var rezult = $("#List4").val(); |
Почему, получим, если и в рамках JQ.
Вы не понимаете самой сути связанных списков, а если точнее - зависимых списков. Код, что вы на шли на просторах интернета, даже с натяжкой назвать зависимыми списками нельзя. Это ахинея полная, жалкая пародия, имитация связей. Самый яркий пример зависимых списков, это адресация. Конечной целью в таких списках например может быть получение улиц в конкретной стране, конкретном регионе и его городе. Выбор каждого списка, это запрос в базу - сначала по идентификатору страны выбираются ее регионы, следующий запрос это уже запрос по идентификатору страны и идентификатору региона, и получают список городов, и т.д. Если же сделать запрос "получить все данные стран", то это будет древовидное описание данных, то есть это иерархия, зависимость данных. А то что у вас в "найденном в интернете", то в них связь может быть только от богатой фантазии. Хотя для удобства обращения к данным, которые загодя отдаются клиенту, их можно представить и не в виде дерева, но в этом случае "зависимость" данных возлагается на сценарий. Хотите понять как работает это, как должно работать, значит на простом примере постройте зависимые данные, а затем построение по ним связанных списков. Может тогда поймете, что в таком наборе есть конечная цель, последний выбор. |
я суть понял теперь объясню почему именно этот скрипт а не PHP. так как эта страничка должна открываться на телефоне а телефон PHP не понимает тобишь должно быть все скажем так переносимо и рабоче везде а не только на сервере
|
если бы найти тоже самое но на чисто JQ в смысле без PHP и ajax то было бы вооще шикарно
|
Цитата:
Цитата:
Не важно, на стольной ли системе, в мобильной ли открывается страница, эта страница есть HTML, а активные сценарии в ней, это Javascript. Серверного в таких страницах нет и в помине. jQuery это и есть Javascript, фреймворк написанный на Javascript. При этом страница в браузере мобильной системы может обмениваться данными с сервером, это ничем не запрещается. Вот какая странность в вашем рассуждении - "но я то делаю последний выбор в 4-ом списке, а соответственно в 4-й список попадает некое значение правильно?". Что значит попадает? Последний список на момент выбора в нем заполнен, и выбор в нем, это просто выбор опции, а ее значение и будет являться значением списка ($("#List4").val()). <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script> var data = { 'a' : { '1' : {'1': 'Var 2-1-1', '2': 'Var 2-1-2'}, '2' : {'1': 'Var 2-2-1', '2': 'Var 2-2-2'} }, 'b' : { '1' : {'1': 'Var 3-1-1', '2': 'Var 3-1-2'}, '2' : {'1': 'Var 3-2-1', '2': 'Var 3-2-2'} } }; $(function() { //заполнение списков и выбор в последнем списке //при этом назвать списки зависимыми можно только номинально: //1) данные не связаны //2) стоит убрать disabled у списков и можно будет заполнять списки произвольно //то есть, это "имитация" связанных списков //на самом деле сценарий просто задает последовательность заполнения списка от первого до... var lst = $('#list').on('change', 'select', function() { if(this.value) { if(this.name != 'c') { var i = lst.index(this)+1, //индекс следующего списка от текущего src = lst.eq(i); //следующий список //очищаем все последюущие списки от текущего и запрещаем выбор в них lst.slice(i).empty().prop('disabled', 1) //получаем данные для следующего списка, строим его и разрешаем в нем выбор src.append('<option value="">Select...</option>').prop('disabled', 0) $.each(data[this.name][this.value], function(k, v) { src.append('<option value="'+k+'">'+v+'</option>') }) } else alert(this.value) //иначе выбор в последнем списке - цель } }).find('select'); }); </script> </head> <body> <form id="list" autocomplete="off"> <select name="a"> <option value="">Select...</option> <option value="1">Var 1-1</option> <option value="2">Var 1-2</option> </select> <select name="b" disabled> </select> <select name="c" disabled> </select> </form> </body> </html> |
практически тоже самое за исключением того что в scripte изменение любой позиции ведет за собой дальнейшие изменения а в JQ нет только первый ведет к изменениям, а так то я согласен по поводу связанных списков но вся беда в том что перерыв интернет исчерпывающие сведения по какому либо вопросу найти очень проблематично , а если еще учесть что разные плюшки называются по разному и объяснения этому как таковой нету то пока до кого либо дойдет почему то или иное выражение именно так называется пройдет куча времени. Извини если много глупых вопросов задаю так как практически все что можно найти объясняется следующим образом (образно):
возьмите А прибавьте или отнемите Б и вы получите С а вот С вы можете вставить или вывести куда либо . Примерно все!!!)))) А сути то не раскрыто почему именно А почему именно Б и какие варианты вообще есть все каментарии разчитаны на продвинутого пользователя и некто не задумывается что у нас в инете уйма одаренных людей которым нужно разживать и в рот положить по другому недаходит а некоторые просто стесняются спросить чо да как. |
практически тоже самое за исключением того что в scripte изменение любой позиции ведет за собой дальнейшие изменения а в JQ нет только первый ведет к изменениям, а так то я согласен по поводу связанных списков но вся беда в том что перерыв интернет исчерпывающие сведения по какому либо вопросу найти очень проблематично , а если еще учесть что разные плюшки называются по разному и объяснения этому как таковой нету то пока до кого либо дойдет почему то или иное выражение именно так называется пройдет куча времени. Извини если много глупых вопросов задаю так как практически все что можно найти объясняется следующим образом (образно):
возьмите "А" прибавьте или отнимите "Б" и вы получите С а вот С вы можете вставить или вывести куда либо . Примерно все!!!)))) А сути то не раскрыто почему именно А почему именно Б и какие варианты вообще есть все, комментарии рассчитаны на продвинутого пользователя и некто не задумывается что у нас в интернете уйма одаренных людей которым нужно разжевать и в рот положить по другому ни доходит а некоторые просто стесняются спросить чо да как. |
Цитата:
Не нужно никаких таймеров для данной задачи, а то что это никак не связанные списки я уже устал повторять, и в комментарии к коду еще раз отмечено почему. Разжевывать мне просто некогда, нет на это времени, придется самому вникать в код и учиться понимать... |
я понял спасибо большое и на этом
|
Часовой пояс GMT +3, время: 17:07. |