Выбор из Select

Lvenok1987

Новичок
Выбор из Select

Имеются 3 select. Каким образом сделать, чтобы при выборе какого-либа значения в 1-ом selecte, данные во 2-м и 3-м изменялись на лету, а без использования FORM и тыкания кнопочки.

Я так понимаю нужно использовать Ajax или JS?
Так и не смог найти в поиске такого, не знаю как блин запрос даже создать )
 

Sigorma

Новичок
http://ru.wikipedia.org/wiki/JavaScript
http://ru.wikipedia.org/wiki/Ajax
http://prototypejs.org/
http://api.prototypejs.org/ajax/ajax.html
 

Lvenok1987

Новичок
Ага...запрос нужно было задавать "динамические select".

PHP:
<?php
include "config.php";
echo"
<html> 
<head> 

<script type=\"text/javascript\">
<!—
var aHouseValues = new Array(";

$query1 = "select * from view_ekind where etypeid=$rr";
$result = pg_query($connection, $query1) or die("Error in query: $query." . pg_last_error($connection));
$rows = pg_num_rows($result); 
$ty='"';
echo "$ty";
while($row=@pg_fetch_array($result)) { $re=$row[2]; echo "$re,";    };
echo "$ty";
echo"
);

function getHouseValuesByStreet(index){
    var sHouseValues = aHouseValues[index];
    return sHouseValues.split(\",\"); // преобразуем строку в массив домов
}

function MkHouseValues(index){
    var aCurrHouseValues = getHouseValuesByStreet(index);
    var nCurrHouseValuesCnt = aCurrHouseValues.length;
    var oHouseList = document.forms[\"address\"].elements[\"house\"];
    var oHouseListOptionsCnt = oHouseList.options.length;
    oHouseList.length = 0; // удаляем все элементы из списка домов
    for (i = 0; i < nCurrHouseValuesCnt; i++){
        if (document.createElement){
            var newHouseListOption = document.createElement(\"OPTION\");
            newHouseListOption.text = aCurrHouseValues[i];
            newHouseListOption.value = aCurrHouseValues[i];
            (oHouseList.options.add) ? oHouseList.options.add(newHouseListOption) : oHouseList.add(newHouseListOption, null);
        }else{
            oHouseList.options[i] = new Option(aCurrHouseValues[i], aCurrHouseValues[i], false, false);  }   } }
MkHouseValues(document.forms[\"address\"].elements[\"street\"].selectedIndex);
//-->
</script>
</head> 
<body> 
<form name=\"address\" action=\"#\">
Улица:
<select name=\"street\" onChange=\"MkHouseValues(this.selectedIndex)\">";
$query1 = "SELECT id,name FROM esttype";
$result = pg_query($connection, $query1) or die("Error in query: $query." . pg_last_error($connection));
$rows = pg_num_rows($result);
while($row=@pg_fetch_array($result)) { $rr=$row[0]; $re=$row[1]; echo "<option value=\"$re\">$re";    };

echo"
</select>
&nbsp;Дом:
<select name=\"house\">
<option value=\"N/A\">N/A</option>
</select>
</form>

</body> </html>";
?>

1-й select: выбирается id,name. В option выводится name. Переменной $rr присваивается значение id.

Далее проблема:
2-й select. В нем данные тоже берутся из БД, правда с условием "where etypeid=$rr".
Каким образом JS передать эту переменную и ее значение, что-бы она сработала в sql запросе?
 

Lvenok1987

Новичок
Блин...во 2-м же select идет массив...Разве при выборе, например из 1-го select значения идущего 2,3 и т.д. по очереди в списке, выберется что либо во 2-м select??? Т.к. у меня в массиве есть только 1 строка, никаких 2-х, 3-х и т.д. - нету.

-~{}~ 29.01.10 23:44:

Ох, случайно ниукого нету примера:

3-х динамических связанных select, с запросами из БД?

Поисковики иенно такого не показали...
 

Beavis

Banned
Lvenok1987
в интернете полно примеров
ты просто не хочешь их найти
 

fixxxer

К.О.
Партнер клуба
Ну в каком же это богомерзком туториале всех новичков учат пользоваться echo для вывода html?

Первое, чем отличается php - это тем, что он встраивается в html, это ведь везде написано должно быть.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
fixxxer
Ребята только начавшие писать на php видят то, что видят, иногда просто не зная, что тэги можно обрывать выводом чистого html кода.

Этим грешат очень многие начинающие, читающие левые маны и видя первое, что пишут в книгах - Hello, world (который пишут 90% левых авторов почему то так: <html>....<?php echo 'Hello, world'; ?> ... </html>)

Я сам таким был, по себе помню. Я храню весь код, который когда-либо писал. Очень полезно иногда вернуться в прошлое)

Lvenok1987
Хреново ты искал. Тут все есть
 
Сверху