Сообщение от middlee
|
А почему через задницу?
|
Потому, что данный способ "правильного решения" по другому не назовешь.
То что работает еще не означает, что сделано по разуму. И что будет дальше, если вы вооружившись этим "правильным методом", когда потребуется обеспечить клиента не двумя, а 5 и более динамическими связанными списками? Так же каждый из списков на клиенте будет вызывать свой метод .ajax(), а сервер будет делать запросы сразу скопом по всем спискам? Это называется не программированием, а кодерством.
Как должно быть я писал и предлагал выкинуть на время в помойку ваш класс, сделав все отдельной страницей, чтобы разобраться в механизме, а уж потом облачить в класс или как нравится.
Если речь идет о динамических связанных списках, то самый первый отдается клиенту сразу при загрузке страницы. Остальные либо могут присутствовать (способ А), но только с одной опцией по умолчанию, например с текстом "-------" и атрибутом disabled, а при получении его опций, этот текст заменяется на "Выберите....". Либо списков последующих нет и они добавляются на страницу полностью после ответа сервера (способ Б).
Имя каждого списка есть ключ параметра, по которому сервер будет знать к какой таблице базы нужно сделать запрос за данными, а выбранное значение списка условием этой выборки. Таким образом изменение выбора в списках обрабатывается одним для всех .ajax() методом, передавая на сервер данные - {свое имя как ключ : значение списка}. При каждом изменении выбора в списках, списки последующие за текущим очищаются (при способе А, и первая опция получает текст "-------"), либо удаляются при способе Б.
Сервер обрабатывает эти запросы одной функцией/методом, в котором не получает все скопом, надо, не надо, а только то, что задано параметром запроса.
JSON, это формат передачи данных. Например данные, которые описывают ваш список, представляют собой многомерный массив, который преобразовав в JSON можно отправить на сервер. Сервер эти данные (собственно строка определенного формата) преобразует в объект, обойдя циклом который можно построить список на клиенте.
Ищите прямо здесь, на форуме, о связанных динамических списках были темы, не одна, вот там и посмотрите как правильно решается. А пока ваше решение именно через задницу.