02.01.2012, 10:41
|
Люблю js, jquery
|
|
Регистрация: 23.08.2011
Сообщений: 214
|
|
select menu, зависимый от другого select menu
здраствуите.
есть две "select element". нужно сделать например так: при выборе в первом "select element" страны, допустим Индия, в другом "select element" без перезагрузки страницы появились только города Индии, и соответственно, при выборе в первом "select element" страны, допустим Бразилия, в другом "select element" без перезагрузки страницы появились только города Бразилии. заранее благодарю.
Последний раз редактировалось dadli, 02.01.2012 в 10:43.
|
|
05.01.2012, 19:57
|
Новичок на форуме
|
|
Регистрация: 05.01.2012
Сообщений: 4
|
|
А в каком виде у вас хранятся эти данные? Страны и города.
Только хотел писать тему с подобным вопросом, решил не засорять форум, отпишусь в этой
Решил пробовать хранить данные к примеру в таком виде:
страна | город
Украина | Киев
Украина | Харьков
Украина | Херсон
Россия | Москва
Россия | Краснодар
и т.д.
в первую форму select перечитываются значения до разделителя |
а в зависимости от выбора значения в первом списке фильтруются значения второго.
Но вот как реализовать пока не придумал Думаю такое простое решение уже кто-то реализовывал и не однократно.
Заранее спасибо.
|
|
05.01.2012, 22:13
|
Люблю js, jquery
|
|
Регистрация: 23.08.2011
Сообщений: 214
|
|
7up,
спасибо огромное
|
|
11.01.2012, 15:41
|
|
Просто любитель
|
|
Регистрация: 13.09.2011
Сообщений: 300
|
|
Самописный вариант. Значениями элементов списка станут их порядковые номера (от нуля).
<select id = "sex">
<option value="m" selected>Мужчина</option>
<option value="f">Женщина</option>
<option value="x">Зверев</option>
<option value="?">Другое</option><!-- Данных на это поле нет, соответственно, зависимый селект будет просто очищаться -->
</select>
<select id = "names"></select>
<script>
var dataObject = {
"m": "Пётр,Василий,Сергей,Октавиан",
"f": "Ирина,Светлана,Марина,Евгения",
"x": "Гламур,Звезда,Шоумен,Куафёр"
};
makeRelation = (function () {
function change(slave, data){
var x, dataArray, option;
slave.innerHTML = "";
if (!(this.value in data)){
return false;
}
dataArray = data[this.value].split(",");
for(x = 0; x < dataArray.length; x++) {
option = document.createElement("option");
option.value = String(x);
option.innerHTML = dataArray[x];
slave.appendChild(option);
}
}
return function (master, slave, data) {
master.onchange = function () {
change.call(this, slave, data);
}
master.onchange();
}
})();
makeRelation(gid("sex"), gid("names"), dataObject); // Использование
function gid(txt){
return document.getElementById(txt);
}
</script>
Playground.
Последний раз редактировалось GuardCat, 11.01.2012 в 15:46.
|
|
10.11.2015, 14:50
|
Новичок на форуме
|
|
Регистрация: 10.11.2015
Сообщений: 1
|
|
значения валуе
Сообщение от GuardCat
|
Самописный вариант. Значениями элементов списка станут их порядковые номера (от нуля).
<select id = "sex">
<option value="m" selected>Мужчина</option>
<option value="f">Женщина</option>
<option value="x">Зверев</option>
<option value="?">Другое</option><!-- Данных на это поле нет, соответственно, зависимый селект будет просто очищаться -->
</select>
<select id = "names"></select>
<script>
var dataObject = {
"m": "Пётр,Василий,Сергей,Октавиан",
"f": "Ирина,Светлана,Марина,Евгения",
"x": "Гламур,Звезда,Шоумен,Куафёр"
};
makeRelation = (function () {
function change(slave, data){
var x, dataArray, option;
slave.innerHTML = "";
if (!(this.value in data)){
return false;
}
dataArray = data[this.value].split(",");
for(x = 0; x < dataArray.length; x++) {
option = document.createElement("option");
option.value = String(x);
option.innerHTML = dataArray[x];
slave.appendChild(option);
}
}
return function (master, slave, data) {
master.onchange = function () {
change.call(this, slave, data);
}
master.onchange();
}
})();
makeRelation(gid("sex"), gid("names"), dataObject); // Использование
function gid(txt){
return document.getElementById(txt);
}
</script>
Playground.
|
подскажи пожалуста а как сделать чтобы значения начиналось не начиналось с 0 , надо чтобы оно начилос с нуля но при выборе другой страны значения не менялось а продолжалось . дапустим у меня в стране 4 города , это от 0 до 4 - значения записывается в базу а при выборе другой страны у меня значения города опять начинается с нуля , как сделать чтобы оно продолжилось 5, 6, 7, и так далее
|
|
10.11.2015, 14:58
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от viktor112189
|
дапустим у меня в стране 4 города , это от 0 до 4
|
Это будет тогда 0, 1, 2, 3, а продолжалось с 4, а не 5. Но пишется в базу, а что тогда означают 0, 1, 2, ... для городов в базе?
|
|
|
|