Выбор из Select

Lvenok1987

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

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

Я так понимаю нужно использовать Ajax или JS?
Так и не смог найти в поиске такого, не знаю как блин запрос даже создать )
 
http://ru.wikipedia.org/wiki/JavaScript
http://ru.wikipedia.org/wiki/Ajax
http://prototypejs.org/
http://api.prototypejs.org/ajax/ajax.html
 
Ага...запрос нужно было задавать "динамические 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 запросе?
 
Блин...во 2-м же select идет массив...Разве при выборе, например из 1-го select значения идущего 2,3 и т.д. по очереди в списке, выберется что либо во 2-м select??? Т.к. у меня в массиве есть только 1 строка, никаких 2-х, 3-х и т.д. - нету.

-~{}~ 29.01.10 23:44:

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

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

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

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

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

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

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