Заполнение элементами вотрого селекта при выборе первого селекта

DenVeroid

Новичок
Заполнение элементами вотрого селекта при выборе первого селекта

Нужно сделать два селекта, второй селект должен заполняться элементами от выбранного первого селекта

PHP:
<form method="POST" action="script.php">
	
	<select name="type_1">
	  <option>1</option>
	  <option>2</option>
	  <option>3</option>
	</select>
	
	<select name="type_2">
	  <option>1_1</option>
	  <option>1_2</option>
	  <option>1_3</option>
	</select>
	
	
	<input type="submit" value="Выбрать" name="send">
	
</form>

при выборе из первого селекта элемент "1" второй селект должен вывести элементы принадлежащий выбранному первому элементу из первого селекта?
как я понимаю тут нужно какимто образом сделать через onchange, но как?

тоесть получается что произойдёт с перезагрузкой страници.
 

DenVeroid

Новичок
спасибо, но нужно по проще, нужно только на js

смысл таков, нуждно первым селектом подгрузить второй селект

ведь есть что то типа этого onchange
 

qwebec

Guest
кстати, такая же задача стояла... :)

alexhemp, спасибо за наводку
 

_RVK_

Новичок
есть в CSS такое свойство display называется. Обращатся к нему object.style.display = 'none/block'

Дальше думай сам :)
 

alexhemp

Новичок
DenVeroid

Если тебе нужно что-то "подгрузить" - то JsHttpRequest самая удобная библиотека.
 

DenVeroid

Новичок
ну я сделал так

PHP:
<select name="name" onchange="top.location.href=options[selectedIndex].value">
<option value="1" selected>Продукция</option>
<?php
  $select_data=array('Новоуральск','Новороссийск','Новгород','Нижнекамск','Москва','Мурманск');
    for($y=0; $y<count($select_data); $y++) {
     echo "<option value=\"center.php?cat=".$y."\">".$select_data[$y]."</option>";
    }
?>
</select>
 

DenVeroid

Новичок
Нда.... а где второй селект?
второй селект не стал вставлять сюда, там просто по имени перевого селекта $_GET['name'] заполняется второй селект, вся инфа берётся из БД

ещё бы неплохо бы сделать к примеру первый это будет селект а второй будет текстовое поле, тоесть при выборе селекта должно открываться небольшое окно, из которого должно появиться список принадлежашему выбранному элементу, при выборе из этого небольшого окна один элемент, должно заполниться тектовое поле, тоесть этим можно избавиться от перезагрузки основного окна, поэтому уже не нужно будет заново заполнять другие поля, вот только как это сделать?

понимаю что тут ничего нет сложного, если занать js
 

_RVK_

Новичок
>вот только как это сделать?

А никак. Если не будешь читать ответы, и стараться идти по пути наименьшего сопротивления, то ничего у тебя не получится. Вопрос у тебя был один, а решил ты его совсем по другому. А теперь вообще хочешь чего-то третьего.
 

DenVeroid

Новичок
я не просил тонну кода, когда тут можно реализовать совсем проще, я уже решил свой вопрос, и ушло на это всего одна строчка

onchange="top.location.href=options[selectedIndex].value"

но это только с перезагрузкой страници, но точно также можно сделать с наименьшим кодом сделать, то что спрашивал в последний раз, и вопрос ведь тот-же самый, только реализация немного другая, и неужели трудно ответить, или у вас только всего один вариант(причём Котерова), и на большего вас нехватает....
 

asm

Пофигист
DenVeroid
onchange="top.location.href=this.value"
:)
А как насчет технологии DOM для построения select?

:)
 

Lord Max

Guest
а я делал с помощью :
в js :
(1) - массив (для 2х селектов, 2 массива для 3х и тд)
(2) - 2 функции:
function select1(array или линк на array) - после всех преобразований переданной информации, циклом вызываю след. функцию

function insertoption(optopn,value,location) - в этой функции методом document.createElement('OPTION'); создаю

Логика такова, что для построения 2го селекта в качестве ключа массива используется значение 1го селекта и так до бесконечного множества селектов, разумеется такой подход более трудоёмок и , наверное, ресурсоёмок, но без перезагрузки страницы работает и "жрёт" только клиентские ресурсы :)
 

alexhemp

Новичок
Lord Max

Сделай на http://dklab.ru/lib/Subsys_JsHttpRequest
Могу в привате продемонстрировать пример какие штуки получаются ЛЕГКО с ним.

Буквально в 10-15 строк кода решается ваша задача в 2-мя селектами. А селектов 3, а если затем нужно выбрать галочками а потом из списка?

Web-приложение не может юзать "только клиентские ресурсы", оно по определению клиент-серверное.
 

Lord Max

Guest
alexhemp
как-нибудь попробую, однако пока что, мне совершенно не требуется настолько мощное средство. У меня 3 селекта (как вы знаете в игре) для выбора в последнем нужной системы, куда необходимо отправиться, собственно php рисует 2 массива для js, да и потом в 30 строк остальные функции + у меня всего 2-3кб максимум, а там 8 только js. Однако спасибо за линк, когда понадобится сделать что-то посложнее, обязательно воспользуюсь.
Ps я имел в виду, что <b>JS</b> работает на клиенте и кушает клиентское.
 

jeca

Новичок
Попробывал сделать выбору но почемуто второй селект дублирует значение. Кто знает почему.???

[HPH]
<?
include "set/setup.php";
function select($text)
{
include "set/setup.php";
$type=$_POST['type'];
$query=mysql_query($text,$db);
while ($myrow = mysql_fetch_row($query))
{
if (isset($_POST['type']) && $_POST['type']==$myrow[0])
{
echo "<option selected value='$myrow[0]'>$myrow[1]</option>\n";
}
else
{
echo"<option value='$myrow[0]'>$myrow[1]</option>\n";
}
}
}
?>

<html>
<head>
</head>
<body>

<form name="form" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">

<select name="type" onchange="this.form.submit()">
<option selected>------------------------</option>
<? select("SELECT t.id, t.name FROM type_prod t"); ?>
</select>

<select name="brand" onchange="this.form.submit()>
<option selected>------------------------</option>
<? select("SELECT b.id, b.name, t.id FROM brand b, type_prod t WHERE b.type_prod='$type'"); ?>
</select>

</form>
</body>
</html>
[/PHP]
 

AmadMike

Новичок
Опять эту тему подняли, уже обсуждалось же много раз, вот совсем недавно даже ссылку дали, достаточно в поиске порыться немного. И что вы все к АЯКСУ то пристали? Здесь что из базы на миллион записей ключи вынимаются что-ли?
Вот ссылка (вариант не единственный, можно и через массив или ХЭШ сделать, но довольно приятный) - http://xhtml.ru/2006/02/11/dynamic-select/
 
Сверху