Доброго времени суток! Нужна ваша помощь! Хочу сделать на сайте списки следующего типа:
1) Выбор производителя автомобиля (toyota, bmw…)
2) Изначально пустой. Если в первом списке выбрать, например, toyota, то здесь появляются названия моделей (corolla, spacio и т.д.). При выборе модели, должен происходить переход на определенную страницу.
Сначала поднял этот вопрос в другой группе с подобной тематикой. Там мне помогли сделать скрипт, но он то глючит, то вообще не работает.
Знатоки, прошу вашей помощи. Посмотрите, где я мог допустить ошибки в коде здесь //povorota.net/publ
Либо предложите какие-то другие варианты скриптов или еще что-нибудь.
Заранее, огромное спасибо!
12 марта 2010 в 4:03
Способ без 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 было бы ИМХО лучше
9 марта 2010 в 23:04
вообщем то яков правильно сказал.. используй jquery и будет тебе счастье..
на <select id="producers"> вешаем событие change.. которое сообщает что произошло изменение состояние списка. те что то было выбрано..
далее отправляемpost(get) запрос в котором передаем название марки(индетификатор)
и используя этот индетификатор выбираем имеющиеся модели для данной марка..получаем значения для сдедующего списка и подгружаем их туда..:)
9 марта 2010 в 14:05
используй 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()
});
8 марта 2010 в 1:01
как вариант есть прога флэш меню лабс про, глянь. знаний по флэш ващще ненадо))
ищо можеш глянуть опэи куб – та же шняга…