singlepost

Связанные раскрывающиеся списки :: НУЖНА ПОМОЩЬ! << На главную или назад  

Доброго времени суток! Нужна ваша помощь! Хочу сделать на сайте списки следующего типа:
1) Выбор производителя автомобиля (toyota, bmw…)
2) Изначально пустой. Если в первом списке выбрать, например, toyota, то здесь появляются названия моделей (corolla, spacio и т.д.). При выборе модели, должен происходить переход на определенную страницу.

Сначала поднял этот вопрос в другой группе с подобной тематикой. Там мне помогли сделать скрипт, но он то глючит, то вообще не работает.

Знатоки, прошу вашей помощи. Посмотрите, где я мог допустить ошибки в коде здесь //povorota.net/publ
Либо предложите какие-то другие варианты скриптов или еще что-нибудь.

Заранее, огромное спасибо!

8 ответов в теме “Связанные раскрывающиеся списки :: НУЖНА ПОМОЩЬ!”

  1. 4
    Алексей Вишняков ответил:

    Способ без Ajax и jQuery
    1. Определяешь базу моделей
    лучше всего создать массив в отдельном js файле вида
    var models = new Array (
    '<option….>ВАЗ 2101</option>………', //все модели Вазов
    '<option….>A6</option>………', // все модели бмв
    '…..',
    …..// и так далее
    );
    2. определяешь функцию изменения второго списка (можно в том же файле)
    function changeModelsList(i) {
    var modelList = document.getElementById('models'); // выбираешь нужный элемент на странице
    modelList.innerHTML = models[i]; // вставляешь в него хтмл код из массива
    }

    3. навешиваешь событие на первый селект
    <select name="producers" onchange="changeModelsList(this.value)">…..

    4. у второго селекта должен быть определен id="models"

    вот и все. правда по-быдлокодерски
    используя jQuery, Ajax, и без innerHTML было бы ИМХО лучше

  2. 3
    Алексей Король ответил:

    вообщем то яков правильно сказал.. используй jquery и будет тебе счастье..
    на <select id="producers"> вешаем событие change.. которое сообщает что произошло изменение состояние списка. те что то было выбрано..
    далее отправляемpost(get) запрос в котором передаем название марки(индетификатор)
    и используя этот индетификатор выбираем имеющиеся модели для данной марка..получаем значения для сдедующего списка и подгружаем их туда..:)

  3. 2
    Яков Эээ ответил:

    используй jquery, простой скрипт:
    $('#producers').change(function () {
    //Адрес к которому идёт обращение естесвенно должен быть ваш
    $.post('index.php',{
    producers: $('#producers option:selected').val()
    },function(data) {
    $('#models').html(data);
    });
    });
    В php скрипте производитель будет доступен в переменной $_POST['producers'], данные о моделях возвратятся в переменную data, в данном примере ответ сервера должен быть, типа
    <option id="model_1" value="">model1</option>
    <option id="model_2" value="">model2</option>

    Переход на страницу при выборе модели, как то так можно сделать
    $('#models').change(function () {
    document.location = 'index.php?models=' + $('#models option:selected').val()
    });

  4. 1
    Денис Подлипенский ответил:

    как вариант есть прога флэш меню лабс про, глянь. знаний по флэш ващще ненадо))
    ищо можеш глянуть опэи куб – та же шняга…

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.