Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Jquery + PHP + Smarty (https://javascript.ru/forum/dom-window/61645-jquery-php-smarty.html)

middlee 03.03.2016 10:33

А почему через задницу? Вопрос решен, значит все сделано правильно, просто моих знаний javascript'a недостаточно чтобы сделать по-другому (так как принято делать кем-то). Если бы вы решили эту задачу другим способом, не значит что другие варианты неправильные.
А JSON для меня, к сожалению, это просто 4 буквы :(

laimas 03.03.2016 11:43

Цитата:

Сообщение от middlee
А почему через задницу?

Потому, что данный способ "правильного решения" по другому не назовешь. :)

То что работает еще не означает, что сделано по разуму. И что будет дальше, если вы вооружившись этим "правильным методом", когда потребуется обеспечить клиента не двумя, а 5 и более динамическими связанными списками? Так же каждый из списков на клиенте будет вызывать свой метод .ajax(), а сервер будет делать запросы сразу скопом по всем спискам? Это называется не программированием, а кодерством.

Как должно быть я писал и предлагал выкинуть на время в помойку ваш класс, сделав все отдельной страницей, чтобы разобраться в механизме, а уж потом облачить в класс или как нравится.

Если речь идет о динамических связанных списках, то самый первый отдается клиенту сразу при загрузке страницы. Остальные либо могут присутствовать (способ А), но только с одной опцией по умолчанию, например с текстом "-------" и атрибутом disabled, а при получении его опций, этот текст заменяется на "Выберите....". Либо списков последующих нет и они добавляются на страницу полностью после ответа сервера (способ Б).

Имя каждого списка есть ключ параметра, по которому сервер будет знать к какой таблице базы нужно сделать запрос за данными, а выбранное значение списка условием этой выборки. Таким образом изменение выбора в списках обрабатывается одним для всех .ajax() методом, передавая на сервер данные - {свое имя как ключ : значение списка}. При каждом изменении выбора в списках, списки последующие за текущим очищаются (при способе А, и первая опция получает текст "-------"), либо удаляются при способе Б.

Сервер обрабатывает эти запросы одной функцией/методом, в котором не получает все скопом, надо, не надо, а только то, что задано параметром запроса.

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

Ищите прямо здесь, на форуме, о связанных динамических списках были темы, не одна, вот там и посмотрите как правильно решается. А пока ваше решение именно через задницу. :)


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