Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2011, 12:45
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

Не работает select нужны образом
Доброго вскм времени суток!

Я новичок в 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>

Последний раз редактировалось muravey, 20.01.2011 в 13:51.
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2011, 12:51
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

У меня всё работает, приходит например
Array
(
    [Country] => 1
    [City] => 2
    [bottom] => Проверка
)
Ответить с цитированием
  #3 (permalink)  
Старый 20.01.2011, 12:53
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

А во втором selecte встает нужный город?
Ответить с цитированием
  #4 (permalink)  
Старый 20.01.2011, 12:54
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

При выборе России да
Ответить с цитированием
  #5 (permalink)  
Старый 20.01.2011, 12:57
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

Т.Е. вы выбираете Россия потом Екатеринбург нажимаете Проверка
и в 1 поле Россия и 2 Екатеринбург. ТАК?
Ответить с цитированием
  #6 (permalink)  
Старый 20.01.2011, 13:00
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Да и приходит ответ:
Array
(
    [Country] => 1
    [City] => 3
    [bottom] => Проверка
)
Изображения:
Тип файла: png sshot-200.png (4.2 Кб, 3 просмотров)
Ответить с цитированием
  #7 (permalink)  
Старый 20.01.2011, 13:04
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

Очень странно, а уменя не так. Сейчас вышлю изо.
Ответить с цитированием
  #8 (permalink)  
Старый 20.01.2011, 13:05
Аватар для Vulkan
Профессор
Отправить личное сообщение для Vulkan Посмотреть профиль Найти все сообщения от Vulkan
 
Регистрация: 25.05.2010
Сообщений: 511

Вот посмотрите.
Ответить с цитированием
  #9 (permalink)  
Старый 20.01.2011, 13:07
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

select.jpg
Ответить с цитированием
  #10 (permalink)  
Старый 20.01.2011, 13:09
Аватар для muravey
Интересующийся
Отправить личное сообщение для muravey Посмотреть профиль Найти все сообщения от muravey
 
Регистрация: 20.01.2011
Сообщений: 22

Иероглифы там где русский.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с зависящими select RevivaL Общие вопросы Javascript 10 15.12.2010 14:37
Проблема с динамическим формированием select elepsion jQuery 1 31.10.2010 14:31
помогите найти ошибку (работает в IE но не работает в Firefox) Len4ik Javascript под браузер 2 11.05.2010 15:41
Динамическая HTML форма (FireFox - работает, IE - не работает) dm1tr1y Общие вопросы Javascript 10 11.12.2009 15:59
AJAX - заполнение select - неправильно работает в Mozilla 5.0 С.Тарасов AJAX и COMET 0 17.06.2009 00:58