Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > jQuery,Ajax и подгрузка данных в <select>


Автор: Цербер 25.12.2008, 14:03
Доброе время суток!
Задача в том что бы при выборе страны в другой селект загружались города.
города и страны берутся в своё время из базы.
С jQuery не сильно хорошо знаком, по другим примерам реализовывал свои задачи до этого, а тут пример не могу найти.
Если кто то знает как реализовать или ссылка на пример есть, поделитесь - буду весьма признателен!
Заранее благодарю!

Автор: IDVsbruck 25.12.2008, 15:41
Ну, ты лукавишь, что "в принципе знаю хорошо, а вот тут засада" ...
Принцип в jQuery не поменялся, просто обертка стала намного удобней. Процесс тот же:
- на событие onchange ($(select).change() или $(select).bind("change", function)) вешаешь запрос к серверу на получение данных по выбранной стране ($.post или $.ajax);
- на серваке выбираешь данные и засовываешь их в json (строка типа "{name1: value1, name2: value2, ...}"), а в запросе из предыдущего пункта укажи тип получаемых данных как json;
- обнуляй второй селект и полученные занные запихивай в него. Это можно сделать по-старинке - циклом и созданием каждого option и добавлением к селекту или средствами jQuery - each().

Ну совершенно ничего сложного ...
Данные по всем функциям можешь посмотреть на родном сайте http://www.jquery.com или на лучшем переведенном http://www.linkexchanger.su/category/jquery-dokumentaciya.

Автор: Цербер 26.12.2008, 08:38
Логику конечно я понимаю как это всё делается, а практику не понял=(
поэтому пример наглядный попросил=) 

Автор: Цербер 26.12.2008, 10:44
Проблема решена, обошёлся и без jquery

Автор: crow 5.2.2009, 15:13
Такая проблема, все работает, города и регионы подгружаются... но, если в браузере нажать кнопку "назад" то списки стран и городов начинают, как бы зацикливаться, не понятно почему... ниже пример кода, что не так? как сделать так чтобы при открытии страницы по кнопке браузера "назад" этот скрипт не выполнялся?

Код

jQuery(document).ready(function(){
    jQuery('#scountry').change(function(){
    jQuery.post('placelist.php', {target: 'region',targetid: document.profile.country.value,name:'addr[region]',id:'sregion'}, function(text) {
    jQuery('#sregion').html(text);
    jQuery('#scity').html('<option value="null" disabled selected>Выберите регион</option>');
    return false;
    });
    });
    jQuery('#sregion').change(function(){
    jQuery.post('/placelist.php', {target: 'city',targetid: document.profile.region.value,name:'addr[city]',id:'scity'}, function(text) {
    jQuery('#scity').html(text);
    return false;
    });
    });

});

Автор: oppo 15.3.2009, 19:15
посмотри здесь 
http://remysharp.com/2007/09/18/auto-populate-multiple-select-boxes/
а здесь 
http://remysharp.com/wp-content/uploads/2007/09/select-chain.php

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)