Для файла select.php
<script>
function doload(value){
var req=new JsHttpRequest();
req.onreadystatechange=function(){
if(req.readyState==4) document.getElementById("result").innerHTML=req.responseText;}
req.open(null,"select2.php",true);
req.send({country:value});}
</script>
<script>
function doload2(value){
var req=new JsHttpRequest();
req.onreadystatechange=function(){
if(req.readyState==4) document.getElementById("result2").innerHTML=req.responseText;}
req.open(null,"select3.php",true);
req.send({country:value});}
</script>
<!– Нетрудно догадаться, что мы сделали. Смотрите: ниже мы объявим тег select, в котором пропишем вызов функции doload с параметром this.value, то есть с выбранным в select`e значением. А вышенаписанная функция посылает запрос в скрипт select2.php и передаст ему значение country=value. Затем результат выведет в элемент с id=result. Итак, поехали… –>
<!– Создаем форму –>
<form action="sript.php" method="POST">
<!– Теперь пихаем в нее первый select –>
<select name="country" onchange="doload(this.value);">
<option value="no" selected>Выберите страну…</option>
<option value="russia">Россия</option>
<option value="ukraine">Украина</option>
</select>
<br><br>
<!– Вставляем тэг с нашим идентификатором, вместо которого у нас будет появляться второй select –>
<div id="result"></div>
<br><br>
<div id="result2"></div>
<br><br>
Для файла select2.php
select.php
case "russia":
$html="<select name=\"provider\" onchange='doload2(this.value)' >
<option value='1' >МТС</option>
<option value='2' >Билайн</option>
<option value='3' >Мегафон</option>
</select>";
break;
// С Россией разобрались. Переходим к Украине
case "ukraine":
$html="<select name=\"provider\">
<option>KievGSM</option>
<option>UKRGSM</option>
</select>";
break;
соотвественно сделал файл select3.php
<?
require("JsHttpRequest.php"); //Подключаем библиотеку
$JsHttpRequest=new JsHttpRequest("windows-1251"); //Создаем экземпляр класса, указываю рабочую кодировку.
//Далее все просто. В зависимости от выбранного параметра в первом select`e, заполняем переменную $html необходимым кодом.
switch($_REQUEST["country"]):
//Поехали…
case "1":
$html="<select name=\"new\" ">
<option>МТС 1</option>
<option>МТС 2</option>
<option>МТС 3</option>
</select>";
break;
//С Украиной тоже разобрались. Далее можно понапихать еще чего-нибудь (не забывая редактировать первый select в первом файле). Но мы пока закончим на этом.
default: $html=666;
endswitch;
//В общем-то, все. Теперь просто выводим переменную $html, которую успешно "поймает" наша функция doload().
echo $html;
?>
Спустя 112 сек.
черным указаны изменения которые были внесены