Форум русской поддержки Joomla!® CMS
08.12.2016, 00:16:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Зависимые поля в форме регистрации

 (Прочитано 739 раз)
0 Пользователей и 1 Гость смотрят эту тему.
akhalex38
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 175


« : 11.05.2015, 01:53:31 »

Всем привет!)
Преамбула:)
Показать текстовый блок

Что нужно:
Создать зависимые поля sellect. Значения у них хранятся в бд. Конкретно: выбрал регион - в следующем селлекте города региона.

Структура бд
Показать текстовый блок

Как я это делаю используя стандартные возможности джум для разработчиков:
Код:
<field name="test"
type="sql"
class="inputbox"
query="SELECT id_region, region FROM tbl_region"
key_field="id_region"
value_field="region"

label="Регион">

<option value="0">Выбрать</option>
</field>
<field name="test1"
type="sql"
class="inputbox"
query="SELECT id_city, city FROM tbl_city"
key_field="id_city"
value_field="city"

label="Город">

<option value="0">Выбрать</option>
</field>

Как сделать вообще, чтобы второе поле зависело от первого?
Понятно, что всё вроде бы просто. Сначала нужно выполнить первое поле. А потом во втором считать значение выбранного селлекта и дописать условие в запрос SQL
Код:
SELECT id_city, city FROM tbl_city where id_region=[переменная]

Кто что хорошего подскажет? Спасибо!
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #1 : 11.05.2015, 02:21:31 »

Без js у вас ничего не выйдет. Хотите оптимизировать по максимуму? Пишите на чистом php/js, скрипт, запросы в базу, без XML.
« Последнее редактирование: 11.05.2015, 02:25:29 от zomby6888 » Записан
akhalex38
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 175


« Ответ #2 : 11.05.2015, 13:06:48 »

Без js у вас ничего не выйдет. Хотите оптимизировать по максимуму? Пишите на чистом php/js, скрипт, запросы в базу, без XML.
НАДО с XML, понятно что JS нужен, но... Что там и как?))
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #3 : 11.05.2015, 14:50:21 »

примерно так
« Последнее редактирование: 11.05.2015, 14:58:30 от zomby6888 » Записан
akhalex38
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 175


« Ответ #4 : 11.05.2015, 15:12:31 »

примерно так
Большое спасибо!) Если можно, вопросик:
А как вот это
Код:
var list = {
    1 : ['банан1', 'банан2', 'банан3'],
    2 : ['кокос1', 'кокос2', 'кокос3'],
    3 : ['киви1', 'киви2', 'киви3']
}
Из бд можно получить?)
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #5 : 11.05.2015, 15:19:13 »

AJAX запросом, в ответ отдаете json список опций или сразу HTML готовый. Можно без AJAX, формируте список на php передете скрипту как json строку.
Записан
akhalex38
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 175


« Ответ #6 : 11.05.2015, 15:21:08 »

AJAX запросом, в ответ отдаете json список опций или сразу HTML готовый
Прости за наглость, понимаю что пошлешь сейчас, но пробую, т.к. ну прям вот очень надо!) Если это не очень долго, мог бы какой нибудь пример накидать? В ответ даю клятвенное обещание выучить JS)) Cпасибо, друг)
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #7 : 11.05.2015, 15:29:32 »

В бд должна быть привязка поля одного списка к другому (городов к региону). Нету у меня времени чтобы вам все подробно расписывать, может еще кто нибудь напишет, тут много энтузиастов, а клятва ваша мне ни к чему так как это в ваших интересах, не моих.
Записан
akhalex38
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 175


« Ответ #8 : 11.05.2015, 17:26:24 »

В бд должна быть привязка поля одного списка к другому (городов к региону). Нету у меня времени чтобы вам все подробно расписывать, может еще кто нибудь напишет, тут много энтузиастов, а клятва ваша мне ни к чему так как это в ваших интересах, не моих.
Снова привет!) Секунду времени можно пжл?
Можешь объяснить синтаксис, т.е. что за условие выполняется?
Понимаю вроде все кроме первой части условия в функции. Спасибо!
Код:
function selectRegion(){

        var id_country = $('select[name="country"]').val();
        if(!id_country){
                $('select[name="jform[profile][selectDataRegion]"]').html('');
                $('select[name="jform[profile][selectDataRegion]"]').html('');

        }else{
                $.ajax({
                        type: "POST",
                        url: "/action/ajax.base.php",
                        data: { action: 'showRegionForInsert', id_country: id_country },
                        cache: false,
                        success: function(responce){ $('select[name="jform[profile][selectDataRegion]"]').html(responce); }
                });
        };
};
Записан
akhalex38
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 175


« Ответ #9 : 11.05.2015, 17:51:16 »

Всем спасибо!) Особенно главному помощнику zomby6888
Сделал что хотел)) Как до конца допилю наверное сохраню эту Joomla в таком виде) Думаю многим приятно будет если легко и просто организованы страны-регионы-города на сайте при регистрации)
Записан
akhalex38
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 175


« Ответ #10 : 16.08.2015, 15:15:01 »

Так и не допилил)))
Записан
shurakana
Живу я здесь
******

Репутация: +48/-6
Offline Offline

Сообщений: 862



« Ответ #11 : 16.08.2015, 15:28:55 »

НАДО с XML...

Заказчик — "Необходимо сделать зависимые поля в этой форме, обязательно с XML..."..)))
Записан
beliyadm
Профи
********

Репутация: +1566/-61
Offline Offline

Пол: Мужской
Сообщений: 8110


Севастополь == Россия


« Ответ #12 : 16.08.2015, 21:51:04 »

не выйдет с XML, XML хранится в отдельном файле (к примеру админском для com_content для занесения данных в админку из выпадающего списка в материале) - на фронте вы его не получите.
Нужно сразу делать отдельную таблицу в БД, в XML админки работать с полем типа sql и тогда у вас из любого места будет доступ к этим данным.
Чистый XML здесь как козлу припарка, много геморроя, никакого результата
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet