Сообщение от Sprutenok000
|
объясню почему именно этот скрипт а не PHP
|
А кто говорил о РНР? Просто пример о запросе данных на сервере, а это не обязательно РНР.
Сообщение от Sprutenok000
|
эта страничка должна открываться на телефоне а телефон PHP не понимает
|
То есть браузер настольной системы понимает РНР?
Не важно, на стольной ли системе, в мобильной ли открывается страница, эта страница есть HTML, а активные сценарии в ней, это Javascript. Серверного в таких страницах нет и в помине. jQuery это и есть Javascript, фреймворк написанный на Javascript. При этом страница в браузере мобильной системы может обмениваться данными с сервером, это ничем не запрещается.
Вот какая странность в вашем рассуждении -
"но я то делаю последний выбор в 4-ом списке, а соответственно в 4-й список попадает некое значение правильно?". Что значит попадает? Последний список на момент выбора в нем заполнен, и выбор в нем, это просто выбор опции, а ее значение и будет являться значением списка ($("#List4").val()).
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script>
var data = {
'a' : {
'1' : {'1': 'Var 2-1-1', '2': 'Var 2-1-2'},
'2' : {'1': 'Var 2-2-1', '2': 'Var 2-2-2'}
},
'b' : {
'1' : {'1': 'Var 3-1-1', '2': 'Var 3-1-2'},
'2' : {'1': 'Var 3-2-1', '2': 'Var 3-2-2'}
}
};
$(function() {
//заполнение списков и выбор в последнем списке
//при этом назвать списки зависимыми можно только номинально:
//1) данные не связаны
//2) стоит убрать disabled у списков и можно будет заполнять списки произвольно
//то есть, это "имитация" связанных списков
//на самом деле сценарий просто задает последовательность заполнения списка от первого до...
var lst = $('#list').on('change', 'select', function() {
if(this.value) {
if(this.name != 'c') {
var i = lst.index(this)+1, //индекс следующего списка от текущего
src = lst.eq(i); //следующий список
//очищаем все последюущие списки от текущего и запрещаем выбор в них
lst.slice(i).empty().prop('disabled', 1)
//получаем данные для следующего списка, строим его и разрешаем в нем выбор
src.append('<option value="">Select...</option>').prop('disabled', 0)
$.each(data[this.name][this.value], function(k, v) {
src.append('<option value="'+k+'">'+v+'</option>')
})
} else alert(this.value) //иначе выбор в последнем списке - цель
}
}).find('select');
});
</script>
</head>
<body>
<form id="list" autocomplete="off">
<select name="a">
<option value="">Select...</option>
<option value="1">Var 1-1</option>
<option value="2">Var 1-2</option>
</select>
<select name="b" disabled>
</select>
<select name="c" disabled>
</select>
</form>
</body>
</html>