Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.01.2008, 09:42
wildrain вне форума Посмотреть профиль Отправить личное сообщение для wildrain Найти все сообщения от wildrain
  № 1  
Ответить с цитированием
wildrain

Регистрация: Jan 2008
Сообщений: 2
По умолчанию как обновить список с учётом первого списка?

Нужно, чтобы при выборе строки в первом списке происходило обновление второго списка с учётом выбранного параметра.

при выборе строки в SelectCategory происходило обновление списка SelectSubCategory КАААК???

Вот код.


Код:
	$SelectCategory = "<select name=SelectCategory onchange=$SelectSubCategory>\n\t<option value=\"\"></option>\n\t";

	
		//get the subcategories
		$q2 = "select * from re2_categories order by CategoryName ";
		$r2 = mysql_query($q2) or die(mysql_error());

		if(mysql_num_rows($r2) > '0')
		{
			while($a2 = mysql_fetch_array($r2))
			{
				$SelectCategory .= "<option value=\"$a2[CategoryID]\">$a2[CategoryName]</option>\n";
			}
	
		}

	

	$SelectCategory .= "</select>\n";


	$SelectSubCategory = "<select name=SelectSubCategory>\n\t<option value=\"\"></option>\n\t";

		//get the subcategories
		$q2 = "select * from re2_subcategories where CategoryID = '$a1[CategoryID]' order by SubcategoryName ";
		$r2 = mysql_query($q2) or die(mysql_error());

		if(mysql_num_rows($r2) > '0')
		{
			while($a2 = mysql_fetch_array($r2))
			{
				$SelectSubCategory .= "<option value=\"$a2[SubcategoryID]\">$a2[SubcategoryName]</option>\n";
				
			}
		}
Помогите сделать...


Последний раз редактировалось wildrain; 06.01.2008 в 09:47.
Старый 06.01.2008, 11:48
kotsie вне форума Посмотреть профиль Отправить личное сообщение для kotsie Найти все сообщения от kotsie
  № 2  
Ответить с цитированием
kotsie

Регистрация: Oct 2007
Адрес: Латвия
Сообщений: 62
таким образом это сделать не реально. PHP работает на серверной стороне, генерирует HTML-код, после чего шлёт его броузеру.
Варианты решения проблемы:
1. сохранить в JS все варианты пунктов правого списка, связанные с левым списком.
т.е.
data[пунк_первого_списка_1] = [варианты_второго_списка]
data[пунк_первого_списка_2] = [варианты_второго_списка]
и т.д. затем на onChange первому списку привязать подгрузку новых пунктов из этого массива.

2. можно на onChange делать сабмит формы в которой находится этот список и уже PHP-шкой генерить новые списки.

3. При помощи сокетов грузить на фоне данные для второго списка. опять же onChange
__________________
не уверен – не отвечай!

Старый 06.01.2008, 13:29
wildrain вне форума Посмотреть профиль Отправить личное сообщение для wildrain Найти все сообщения от wildrain
  № 3  
Ответить с цитированием
wildrain

Регистрация: Jan 2008
Сообщений: 2
Цитата:
Сообщение от kotsie
Варианты решения проблемы:
1. сохранить в JS все варианты пунктов правого списка, связанные с левым списком.
т.е.
data[пунк_первого_списка_1] = [варианты_второго_списка]
data[пунк_первого_списка_2] = [варианты_второго_списка]
и т.д. затем на onChange первому списку привязать подгрузку новых пунктов из этого массива.
я что-то похожее и сделал: создал список все возможных вариантов , а там уже взависимости от выбранного параметра в первом списке не нужным присваивается type=hidden ... т.о. отображаются только нужные.

но этот вариант меня не очень устратвает т.к.

1) идёт нагрузка на память - как следствие сайт тупить будет;
2) неизвестно пока как он будет отображаться в разных браузерах.


Может есть ещё какие-нибудь мысли/варианты?

Старый 07.01.2008, 01:05
Vass вне форума Посмотреть профиль Отправить личное сообщение для Vass Найти все сообщения от Vass
  № 4  
Ответить с цитированием
Vass
 
Аватар для Vass

Регистрация: Jan 2008
Сообщений: 2
Цитата:
Сообщение от wildrain
2) неизвестно пока как он будет отображаться в разных браузерах.
Браузер тут совершенно не причем.

как вариант стоит либо посмотреть в сторону технологии AJAX, либо пользовать Фреймы но это уж совсем извращение.

Старый 08.01.2008, 14:39
kotsie вне форума Посмотреть профиль Отправить личное сообщение для kotsie Найти все сообщения от kotsie
  № 5  
Ответить с цитированием
kotsie

Регистрация: Oct 2007
Адрес: Латвия
Сообщений: 62
ну нагрузка на память - это зависит от количества пунктов, может статься что аяксы больше нагрузят. да и задержка в таком случае будет, а если всё сразу загрузить, то нет.
__________________
не уверен – не отвечай!

Старый 08.01.2008, 23:26
Skubent вне форума Посмотреть профиль Отправить личное сообщение для Skubent Посетить домашнюю страницу Skubent Найти все сообщения от Skubent
  № 6  
Ответить с цитированием
Skubent
 
Аватар для Skubent

Регистрация: Oct 2005
Адрес: Млечный Путь, 7-й рукав, YD AC-451, 3-я планета.
Сообщений: 996
Отправить сообщение для Skubent с помощью ICQ
wildrain, это ты решил память пользователя поэкономить ?
Там минимум 10 мегабайт по нынешним временам есть свободной совершенно точно. А если предполагается в селектах по тысяче записей держать - это уже полная труба с юзабилити.
Что касается "неизвестно как оно" - сделать да посмотреть, делов-то...

Vass, одна из реализаций аякса подразумевает использование фреймов, никакого извращения. Поменьше слушайте сеотиков и побольше думайте.
__________________
Тут вы найдете ответы на почти все вопросы:
А можно ли сделать так ? - Можно.
Почему не работает ? - Неправильно сделано.
Где ошибка ? - В ДНК.

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 16:59.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.