Доброго вскм времени суток!
Я новичок в JS.
Есть select стран и select городов, выбираю страну подставляются города этой страны, выбираю город и хочу постом отправить форму и чтобы на следующей странице в select подставлял страну и город которые выбрали на пред странице. Страна подставляется а город нет. Почему? Кто знает?
script.js
function dynamicSelect(id1, id2) {
// Сперва необходимо проверить поддержку W3C DOM в браузере
if (document.getElementById && document.getElementsByTagName) {
// Определение переменных, ссылающихся на списки
var sel1 = document.getElementById(id1);
var sel2 = document.getElementById(id2);
// Клонирование динамического списка
var clone = sel2.cloneNode(true);
// Определение переменных для клонированных элементов списка
var clonedOptions = clone.getElementsByTagName("option");
// Вызов функции собирающей вызываемый список
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
// При изменении выбранного элемента в первом списке: // вызов функции пересобирающей вызываемый список
sel1.onchange = function() {
refreshDynamicSelectOptions(sel1, sel2, clonedOptions);
}
}
}
// Функция для сборки динамического списка
function refreshDynamicSelectOptions(sel1, sel2, clonedOptions) {
// Удаление всех элементов динамического списка
while (sel2.options.length) {
sel2.remove(0);
}
var pattern1 = /( |^)(select)( |$)/;
var pattern2 = new RegExp("( |^)(" + sel1.options[sel1.selectedIndex].value + ")( |$)");
// Перебор клонированных элементов списка
for (var i = 0; i < clonedOptions.length; i++) {
// Если название класса клонированного option эквивалентно "select" // либо эквивалентно значению option первого списка
if (clonedOptions[i].className.match(pattern1) ||
clonedOptions[i].className.match(pattern2)) {
// его нужно клонировать в динамически создаваемый список
sel2.appendChild(clonedOptions[i].cloneNode(true));
}
}
}
// Вызов скрипта при загрузке страницы
window.onload = function() {
dynamicSelect("Country", "City");
}
index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="ru" xml:lang="ru">
<head>
<title>Динамические выпадающие списки</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta name="description" content="Динамические выпадающие списки" />
<link href="http://xhtml.ru/2006/02/11/dynamic-select/" rel="home" hreflang="ru" />
<script type="text/javascript" src="script.js"></script>
</head>
<body>
<?php
echo "<pre>";
print_r($_POST);
echo "</pre>";
$country = array( array ("1", "Россия"),
array ("2", "Украина"),
array ("3", "Белорусь")
);
$city = array( array ("1", "1", "Москва"),
array ("1", "2", "Санкт-Петербкрг"),
array ("1", "3", "Екатеринбург")
);
?>
<form action="#" method="post">
<select name="Country" id="Country">
<option value="0">Выберите страну...</option>
<?php
// Выводим список стран
foreach($country as $k=>$v)
{
if($_POST['Country'] == $v[0])
echo "<option value=\"$v[0]\" selected>$v[1]</option>/t";
else echo "<option value=\"$v[0]\">$v[1]</option>/t";
}
?>
</select>
<select name="City" id="City">
<option class="0" value="0">Выберите город...</option>
<?php
// Выводим список городов
foreach($city as $k=>$v)
{
if($_POST['City'] == $v[1])
echo "<option class=\"$v[0]\" value=\"$v[1]\" selected>$v[2]</option>/t";
else echo "<option class=\"$v[0]\" value=\"$v[1]\">$v[2]</option>/t";
}
?>
</select>
<input type="submit" name="bottom" value="Проверка">
</form>
</body>
</html>