| 
 Динамические селекты
 Имеется связка из html+php+js. В html при загрузке создается первый селект, при выборе одного из пунктов, должен заполнится второй селект, а при выборе второго - должно заполнится поле. Подскажите чего не хватает? Или где почитать об этом! 
main.html
 
<html>
<head>
<script type="text/javascript" src="ajax.js"></script>
<script type="text/javascript" src="spi_obj_out.js"></script>
</head>
<body>
<form NAME="vhod" ACTION="vhod.php">
СПИ:<BR>
<select id="spi_out" name="spi_out" onclick="getSpiList(this)">
<OPTION VALUE="no_spi">СПИ
</SELECT><BR>
Пультовый номер:<BR>
<td><select id="obj_out" name="obj_out" onchange="getObjList(this)">
<OPTION VALUE="no_obj" SELECTED>Объект               
</select><BR>
Данные объекта:<BR>
<INPUT TYPE="text" WIDTH="10" NAME="pn"><BR>
<INPUT TYPE="submit" VALUE="Запулить">
</form>
</body>
</html>
 
spi_obj_out.php
 
$do = $_GET['do']; 
$spi = $_GET['spi'];
$obj = $_GET['obj'];
if(isset($_GET['do']))
{
$spi = array();
$spi = array('Выбор СПИ','Ключ','Струна');
if(isset($_GET['spi']) and $do=='spi'){
for($i=0;$i<count($spi);$i++)
{echo "obj.options[obj.options.length] = new Option('".$spi[$i]."','".$i."');\n";}}}
if(isset($_GET['do']))
{
$obj = array();
if ($spi=='Ключ') {$obj = array('Объект','+205','+239','-598','-45656');}
if ($spi=='Струна') {$obj = array('Объект','+205','+239','-598','-45656');}
if(isset($_GET['obj']) and $do=='obj'){
for($i=0;$i<count($obj);$i++){
echo "obj.options[obj.options.length] = new Option('".$obj[$i]."','".$i."');\n";}}}
spi_obj_out.js
 
var ajax = new Array();
function getSpiList(sel)
{
	var countryCode = sel.options[sel.selectedIndex].value;
	document.getElementById('spi_out').options.length = 0;	// Empty city select box
	if(countryCode.length>0){
		var index = ajax.length;
		ajax[index] = new sack();
		
		ajax[index].requestFile = 'spi_obj_out.php?do=spi&spi=go';	// Specifying which file to get
		ajax[index].onCompletion = function(){ createSpi(index) };	// Specify function that will be executed after file has been found
		ajax[index].runAJAX();		// Execute AJAX function
	}
}
function createSpi(index)
{
	var obj = document.getElementById('spi_out');
	eval(ajax[index].response);	// Executing the response from Ajax as Javascript code	
}
function getObjList(sel)
{
	var category = sel.options[sel.selectedIndex].value;
	document.getElementById('obj_out').options.length = 0;	// Empty city select box
	if(category.length>0){
		var index = ajax.length;
		ajax[index] = new sack();
		
		ajax[index].requestFile = 'spi_obj_out.php?do=obj&obj=go';	// Specifying which file to get
		ajax[index].onCompletion = function(){ createObj(index) };	// Specify function that will be executed after file has been found
		ajax[index].runAJAX();		// Execute AJAX function
	}
}
function createObj(index)
{
	var obj = document.getElementById('obj_out');
	eval(ajax[index].response);	// Executing the response from Ajax as Javascript code	
}
 |