|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: 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. |
|
|||||
Регистрация: Oct 2007
Адрес: Латвия
Сообщений: 62
|
таким образом это сделать не реально. PHP работает на серверной стороне, генерирует HTML-код, после чего шлёт его броузеру.
Варианты решения проблемы: 1. сохранить в JS все варианты пунктов правого списка, связанные с левым списком. т.е. data[пунк_первого_списка_1] = [варианты_второго_списка] data[пунк_первого_списка_2] = [варианты_второго_списка] и т.д. затем на onChange первому списку привязать подгрузку новых пунктов из этого массива. 2. можно на onChange делать сабмит формы в которой находится этот список и уже PHP-шкой генерить новые списки. 3. При помощи сокетов грузить на фоне данные для второго списка. опять же onChange
__________________
не уверен – не отвечай! |
|
|||||
Регистрация: Jan 2008
Сообщений: 2
|
Цитата:
но этот вариант меня не очень устратвает т.к. 1) идёт нагрузка на память - как следствие сайт тупить будет; 2) неизвестно пока как он будет отображаться в разных браузерах. Может есть ещё какие-нибудь мысли/варианты? |
|
|||||
Регистрация: Jan 2008
Сообщений: 2
|
Цитата:
как вариант стоит либо посмотреть в сторону технологии AJAX, либо пользовать Фреймы но это уж совсем извращение. |
|
|||||
Регистрация: Oct 2007
Адрес: Латвия
Сообщений: 62
|
ну нагрузка на память - это зависит от количества пунктов, может статься что аяксы больше нагрузят. да и задержка в таком случае будет, а если всё сразу загрузить, то нет.
__________________
не уверен – не отвечай! |
|
|||||
wildrain, это ты решил память пользователя поэкономить ?
Там минимум 10 мегабайт по нынешним временам есть свободной совершенно точно. А если предполагается в селектах по тысяче записей держать - это уже полная труба с юзабилити. Что касается "неизвестно как оно" - сделать да посмотреть, делов-то... Vass, одна из реализаций аякса подразумевает использование фреймов, никакого извращения. Поменьше слушайте сеотиков и побольше думайте.
__________________
Тут вы найдете ответы на почти все вопросы: А можно ли сделать так ? - Можно. Почему не работает ? - Неправильно сделано. Где ошибка ? - В ДНК. |
Часовой пояс GMT +4, время: 16:59. |
|
« Предыдущая тема | Следующая тема » |
|
|