Ну хорошо, вот вариант для 3 списков. Только давайте на этом закончим, если вам нужен Javascript, или учите, или нанимайте специалиста.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<script language="JavaScript">
dir = new Array()
dir[1] = new Array()
dir[1][0] = ""
dir[1][1] = "Апрелевка"
dir[1][2] = "Балашиха"
dir[1][3] = "Бронницы"
dir[2] = new Array()
dir[2][0] = ""
dir[2][1] = "Арамиль"
dir[2][2] = "Артемовский"
dir[2][3] = "Асбест"
dir[3] = new Array()
dir[3][0] = ""
dir[3][1] = "Александровск"
dir[3][2] = "Березники"
dir[3][3] = "Верещагино"
rai = new Array()
rai[1] = new Array()
rai[1][0] = new Array("")
rai[1][1] = new Array("", "первый", "второй", "третий")
rai[1][2] = new Array("", "первый", "второй", "третий")
rai[2] = new Array()
rai[2][0] = new Array("")
rai[2][2] = new Array("", "первый", "второй", "третий")
rai[3] = new Array()
rai[3][0] = new Array("")
rai[3][1] = new Array("", "первый", "второй", "третий")
function show_subs(new_reg)
{
var k=document.form1.menu1.selectedIndex
var listObj=document.form1.menu2
listObj.length=0
if (new_reg)
sel = 0;
else
sel = <?php echo $_GET['si2']? (int)$_GET['si2'] : 0; echo";\n" ?>
for (var j=0; j<dir[k].length; j++)
{
listObj.options[j]=new Option(dir[k][j], dir[k][j])
}
listObj.options[sel].selected=true
show_rais(true)
}
function show_rais(new_gor)
{
var k=document.form1.menu1.selectedIndex
var j=document.form1.menu2.selectedIndex
var listObj=document.form1.menu3
listObj.length=0
if (new_gor)
sel = 0;
else
sel = <?php echo $_GET['si3']? (int)$_GET['si3'] : 0; echo";\n" ?>
for (var i=0; i<rai[k][j].length; i++)
{
listObj.options[i]=new Option(rai[k][j][i], rai[k][j][i])
}
listObj.options[sel].selected=true
}
function subm()
{
document.form1.si1.value = document.form1.menu1.selectedIndex;
document.form1.si2.value = document.form1.menu2.selectedIndex;
document.form1.si3.value = document.form1.menu3.selectedIndex;
}
</script>
</head>
<body>
<form name="form1" action="" method="GET" onSubmit="subm()">
<input type="hidden" name="si1" value="0">
<input type="hidden" name="si2" value="0">
<input type="hidden" name="si3" value="0">
<?php
$arr = array ('', 'Московская область', 'Свердловская область', 'Пермский край');
$response = '<select name="menu1" onChange="show_subs(true)">';
for ($i=0; $i<count($arr); $i++){
if($i==$_GET['si1'])
$response .= '<option value="'.$arr[$i].'" selected="selected">'.$arr[$i].'</option>';
else
$response .= '<option value="'.$arr[$i].'">'.$arr[$i].'</option>';
}
$response .= '</select>';
print $response;
?>
<br>
<select name="menu2" onChange="show_rais(true)">
<script language="JavaScript">
<!--
show_subs(false);
//->
</script>
</select>
<br>
<select name="menu3">
<script language="JavaScript">
<!--
show_rais(false);
//->
</script>
</select>
<br>
<input name="search" type="submit" class="knopka" title="Найти" value="Найти">
</form>
</body>
</html>