powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (JS) Как сделать динамический SELECT?
20 сообщений из 20, страница 1 из 1
(JS) Как сделать динамический SELECT?
    #33218517
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
задача такая
Допустим есть два ниспадающих меню (SELECT)
в первом меню строки выбора [a1,a2,a3] во втором в зависимости от выбора в первом [a1.1,a1.2,a1.3] или [a2.1,a2.2,a2.3] или [a3.1,a3.2,a3.3]. При этом формадолжна оправлять значения [b1.1,b1.2,b1.3] или [b2.1,b2.2,b2.3] или [b3.1,b3.2,b3.3] соответсвенно.
Как такое можно реализовать?
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33218549
Фотография Alex Rootoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JavaScript исполняется на стороне клиента!


With best regards Alex Rootoff
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33218689
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Rootoff , к чему было ваше сообщение?

mod , на сколько я понял, На основании результатов перового SELECT должно формироваться содержимое второго SELECT?
Если так, то эта тема обсуждалась несколько раз. Алгоритм приблиительно следующий: по событию onChange в первом SELECT выполняется функция, которая подменяет содержимое второго SELECT.
А вообще - поиск по форуму (можно и не по этому, а например на webscript.ru )
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33219525
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Rootoff во-первых я в курсе, во-вторых его можно и на сервере выполнять, что частенько делают, если програмят на ASP.
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33219526
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, на основании первого выбора должно формироватся второе меню. Всё точно.
Счас ссылку посмотрю...
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33219608
Фотография Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как понимаю поиск сейчас не работает... но могу сказать точно, я давал ссылку на решение раз 10 уже ...
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33219648
msh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это указанная Вами ссылка на webscript.ru. Я тоже искал решение подобной задачи. Спасибо.
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33222142
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или я не понял, или это совсем не то что надо.... Мне надо чтобы уже на клиентской машине, при выборе в форме из одного списка изменялись значения в другом(при этом и число элементов списка изменяется)....
Грубо говоря в списках уточнения источников информации:
В превом типы источников (радио, ТВ, газеты и пр...), а во втором уточнения названий ("МК","Коммерсантъ","Мурзилка"). Поятно что если выбрано ТВ, то во втором списке должны быть только программы ТВ, а не газеты и тп.
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33222198
msh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
php юзаю недавно поэтому могу ошибаться, но суть примерно такая.
На клиенте формировать select на лету можете посредством JavaScript.
В где-то инете был пример. Иначе можете подгружать данные в 2-й
select из БД выборкой по первому select.
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33222200
msh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что собственно и было показано в примере по ссылке
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33222264
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИли я не понял,
Или вы не поняли, или некорректно форумлируете задачу. ИМХО, первое больше похоже на правду.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33222844
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тут тока JS подойдёт, из базы варианты в массив придётся кидать... И на клиенте уже с массивами разбиратся...
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33223102
synapse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
modтут тока JS подойдёт, из базы варианты в массив придётся кидать... И на клиенте уже с массивами разбиратся...
ну зачем так категорично, может в случае когда списки не велики можно их сразу встроить и на javascript делать выборку А вот если выборки делать из нескольких сотен записей??
Вот я например делал скрытый фрейм, в который я посылал запрос и в нем формировался уже серверным скриптом(на php) необходимый набор данных, а потом я отображал этот фрейм. По виду он у меня ничем не отличается от стандартного select'а .
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33223176
Фотография 4m@t!c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИМХО, Вы обрывками излагаете задачу. Вам тяжело что-то подсказать.
----------------------------------------
Артисты не приехали, приехали цыгане
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33223610
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. synapse, скрытый фреём это канечно хорошо, но не подходит....
выборки из которых строятся списки берутся из базы данных. Затем на Perl генерю HTML-форму. Списки небольшие, но могут менятся, поэтому фиксирванно не забить... На самом деле в итоге они всё одно ведь на клиенте фиксированные...
2. сложно сразу всё описать. кажется что и так всё в постанвке понятно, а кады видишь что нет, то и добавляешь...
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33223621
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на худой конец я вот подумал по onchange можно обновлять страничку.... с новым списком возвращать, но это жёстко и мерцать будет....
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33224109
Фотография Alex Rootoff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я извеняюсь, не там запостил.

With best regards Alex Rootoff
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33225254
mod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бывает....
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33226450
synapse
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mod1. synapse, скрытый фреём это канечно хорошо, но не подходит....
выборки из которых строятся списки берутся из базы данных. Затем на Perl генерю HTML-форму. Списки небольшие, но могут менятся, поэтому фиксирванно не забить... На самом деле в итоге они всё одно ведь на клиенте фиксированные...
2. сложно сразу всё описать. кажется что и так всё в постанвке понятно, а кады видишь что нет, то и добавляешь...

Вы меня просто не поняли, попробую пояснить:
У вас несколько селектов, допусти вы выбрали в первом какой то параметр, затем когда вы пытаетесь открыть второй селект, в этот момент java скриптом посылается запрос(id из первого селекта) в скрытый фрейм, который обновляется и его содержание генерится(берутся данные из базы по переданному id) на сервере, затем этот фрейм отображается с нужными данными.
Кстати даже здесь есть пример дакого выпадающего списка(правда из него не делаются выборки). На странице с топиками,внизу страницы есть выпадающий список с форумами, вот он как раз и есть скрытый фрейм...

А обновление странички при onchange это самый плохой вариант, для пользователя это будет заметно и возможно даже медленно. Да и придется каждый раз передавать уже заполненый формы чтоб после обновления снова вернуть в них данные который пользователь заполнил...
...
Рейтинг: 0 / 0
(JS) Как сделать динамический SELECT?
    #33226606
Фотография Groove
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите в сторону Quickform
Тут более или менее подробная статья: http://phpclub.ru/detail/article/quickform


пхп-код, который все за Вас сделал:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
<?
set_include_path(get_include_path() . PATH_SEPARATOR . CFG_LIB_PATH."pear\\");

require_once 'HTML/QuickForm.php';

$form =& new HTML_QuickForm('frmTest', 'post');

$main[ 0 ] = "Pop";
$main[ 1 ] = "Rock";
$main[ 2 ] = "Classical";

$secondary[ 0 ][ 0 ] = "Belle & Sebastian";
$secondary[ 0 ][ 1 ] = "Elliot Smith";
$secondary[ 0 ][ 2 ] = "Beck";
$secondary[ 1 ][ 3 ] = "Noir Desir";
$secondary[ 1 ][ 4 ] = "Violent Femmes";
$secondary[ 2 ][ 5 ] = "Wagner";
$secondary[ 2 ][ 6 ] = "Mozart";
$secondary[ 2 ][ 7 ] = "Beethoven";
$opts[] = $main;
$opts[] = $secondary;

$hs =& $form->addElement('hierselect', 'ihsTest', 'Hierarchical select:', array('style' => 'width: 20em;'), '<br />');
$hs->setOptions($opts);

// Tries to validate the form
if ($form->validate()) {
    // Form is validated, then processes the data
    $form->freeze();
    $form->process('myProcess', false);
    echo "\n<HR>\n";
}

// Process callback
function myProcess($values)
{
    echo '<pre>';
    var_dump($values);
    echo '</pre>';
}

$form->display();
?>

в итоге Вы получаете следующий код

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
<form action="/elements.php" method="post" name="frmTest" id="frmTest">
<div>
<table  style="BORDER: #3F89C3 1px solid;" align=center border="0">

	<tr>
		<td width= 50 % align="right" valign="top"><b>Hierarchical select:</b></td>
		<td valign="top" align="left"><script type="text/javascript">
//<![CDATA[
hs_ihsTest_0 = {
"0":"Belle & Sebastian",
"1":"Elliot Smith",
"2":"Beck"
}
hs_ihsTest_1 = {
"3":"Noir Desir",
"4":"Violent Femmes"
}
hs_ihsTest_2 = {
"5":"Wagner",
"6":"Mozart",
"7":"Beethoven"
}
function swapOptions(frm, grpName, eleIndex, nbElements, arName)
{
    var n = "";
    var ctl;

    for (var i =  0 ; i < nbElements; i++) {
        ctl = frm.form[grpName+'['+i+']'];
        if (!ctl) {
            ctl = frm.form[grpName+'['+i+'][]'];
        }
        if (i <= eleIndex) {
            n += "_"+ctl.value;
        } else {
            ctl.length =  0 ;
        }
    }

    var t = eval("typeof("+arName + n +")");
    if (t != 'undefined') {
        var the_array = eval(arName+n);
        var j =  0 ;
        n = eleIndex +  1 ;
        ctl = frm.form[grpName+'['+ n +']'];
        if (!ctl) {
            ctl = frm.form[grpName+'['+ n +'][]'];
        }
        for (var i in the_array) {
            opt = new Option(the_array[i], i, false, false);
            ctl.options[j++] = opt;
        }
    }
}
//]]>
</script><select style="width: 20em;" name="ihsTest[0]" onchange="swapOptions(this, 'ihsTest', 0, 2, 'hs_ihsTest');">
	<option value="0">Pop</option>
	<option value="1">Rock</option>
	<option value="2">Classical</option>
</select><br /><select style="width: 20em;" name="ihsTest[1]">
	<option value="0">Belle & Sebastian</option>
	<option value="1">Elliot Smith</option>
	<option value="2">Beck</option>
</select></td>
	</tr>
</table>
</div>
</form>
...
Рейтинг: 0 / 0
20 сообщений из 20, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (JS) Как сделать динамический SELECT?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]