Всем хай.
Делаю проект по СУБД на php+sql.
Поставлена задача сделать фильтр поиска.
Суть задачи:
Имеется форма из 4 combobox и button
<from>
1. Федеральный округ
2. Субъект
3. Город
4. ВУЗ
Выбрать
</form>
Изначально все 4 комбо получают общие значения из БД на сервере(все значения из своих столбцов)
Суть фитра в том, что из комбо выбираются значения, по кнопке Выбрать происходит редирект на новую форму с передачей параметров для полного SQL Select и отображением необходимой инфо-таблицы по этим параметрам.
Но не все так просто(по крайнй мере для меня)
Пример 1(и вроде как самый простой в реализации, но...) "Cверху -> Вниз":
При выборе значения в 1 боксе происходит новый запрос БД и 2,3,4 уже получают отфильтрованные значения по первому боксу. И так далее вплоть до 4 бокса.
Пример 2(самый сложно представляемый мною) "Рандомный выбор бокса":
При выборе ЛЮБОГО кроме первого бокса все верхние заполняются автоматически.
т.е. при выборе 3 бокса 1 и 2 заполнятся автоматом по полученным значения столбцов из БД, а 4 при этом получит отфильтрованный по 3 боксу список.
прилагаю наброски сырые наброски:
Спойлер (Отобразить)
PHP:
скопировать код в буфер обмена
<? include ($_SERVER['DOCUMENT_ROOT'].'/scripts/db_con.php');
$fo_res = mysql_query(" SELECT DISTINCT region FROM vuz ORDER BY region "); $sbj_res = mysql_query(" SELECT DISTINCT oblname FROM vuz ORDER BY oblname"); $city_res = mysql_query(" SELECT DISTINCT city FROM vuz ORDER BY city"); $vuz_res = mysql_query(" SELECT DISTINCT z2 FROM vuz ORDER BY z2"); ?>
<form method="POST" action="">
Федеральный округ<br><select name='rg_sel' size="1" onChange='this.form.submit()' >
<option value="NULL">--</option>
echo '<option value='.$row['region'].'>'.$row['region'].'</option>';}?>
<? if (isset($_POST['rg_sel'])) { echo $_POST['rg_sel'];
} else {
echo 'не выбрано';
}?>
</select><br>
Субъект федерации<br><select name='sbj_sel' size="1">
<option value="NULL">--</option>
<?
if(isset($_POST['rg_sel'])){ $rg_sel=$_POST['rg_sel'];
$sbj_res = mysql_query(" SELECT DISTINCT oblname FROM vuz WHERE region=$rg_sel ORDER BY oblname"); echo '<option value='.$row['oblname'].'>'.$row['oblname'].'</option>';
}
} else {
$sbj_res = mysql_query(" SELECT DISTINCT oblname FROM vuz ORDER BY oblname"); echo '<option name=\'sbj_sel\' value='.$row['oblname'].'>'.$row['oblname'].'</option>';
}
}?>
</select><br>
Город<br><select size="1">
<option value="NULL">--</option>
</select><br>
ВУЗ<br><select size="1">
<option value="NULL">--</option>
</select><br><br>
<input type="submit" name="fl_btn" value="Выбрать">
</form>