Buenas, 
 
Estoy intentando modificar un select dependiente de 3 niveles para que me guarde los valores de los select elegidos (si se utilizan) en variables. Seguro que es facil pero mis conocimientos son muy limitados. Os dejo a continuación el codigo:
 
Lo que una vez escogido el primer select, el segundo o el tercero al dar alboton de IR del select me lo redirija a una pagina o otra de mi web.
 
<?php
 
function generaSelect()
{
	$consulta=mysql_query("SELECT id, opcion FROM select_1");
 
	echo "<select name='select1' id='select1' style='background-color: #CCC;' onChange='cargaContenido(this.id)'>";
	echo "<option value='0'>Elige una opcion</option>";
	while($registro=mysql_fetch_row($consulta))
	{
		echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
	}
	echo "</select>";
}
 
 
?>
 
 
<form action="XXXXX".php" method="post" target="_blank">
 
<div id="demo" style="width: 540px; height:auto">
 
<div id="demoboton">
<input type="submit" value="IR" />
</div>
 
<div id="Der">
 
<select disabled="disabled" name="select3" id="select3">
<option value="0">Selecciona opción...</option>
</select>
 
</div>
 
<div id="Med">
 
<select disabled="disabled" name="select2" id="select2" style="background-color:#CCC; list-style-type:lower-alpha; width:auto; text-align: center; display:marker;">
<option value="0">Selecciona opción...</option>
</select>
 
</div>
 
<div id="Izq">
<?php generaSelect(); ?>
</div>
 
</div> 
</form>
 
 
------ select_dependiente.js------
 
function nuevoAjax()
{ 
 
	var xmlhttp=false;
	try
	{
 
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP");
	}
	catch(e)
	{
		try
		{
 
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
		catch(E)
		{
if (!xmlhttp && typeof XMLHttpRequest!='undefined') xmlhttp=new XMLHttpRequest();
		}
	}
	return xmlhttp; 
}
 
 
var listadoSelects=new Array();
listadoSelects[0]="select1";
listadoSelects[1]="select2";
listadoSelects[2]="select3";
 
 
 
function buscarEnArray(array, dato)
{
 
	var x=0;
	while(array[x])
	{
		if(array[x]==dato) return x;
		x++;
	}
	return null;
}
 
function cargaContenido(idSelectOrigen)
{
 
	var posicionSelectDestino=buscarEnArray(listadoSelects  , idSelectOrigen)+1;
 
	var selectOrigen=document.getElementById(idSelectOrige  n);
 
	var opcionSeleccionada=selectOrigen.options[selectOrigen.selectedIndex].value;
 
	if(opcionSeleccionada==0)
	{
		var x=posicionSelectDestino, selectActual=null;
 
		while(listadoSelects[x])
		{
			selectActual=document.getElementById(listadoSelect  s[x]);
			selectActual.length=0;
 
			var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Selecciona Opción...";
			selectActual.appendChild(nuevaOpcion);	selectActual.disabled=true;
			x++;
		}
	}
 
	else if(idSelectOrigen!=listadoSelects[listadoSelects.length-1])
	{
 
		var idSelectDestino=listadoSelects[posicionSelectDestino];
		var selectDestino=document.getElementById(idSelectDest  ino);
 
		var ajax=nuevoAjax();
		ajax.open("GET", "select_dependientes_proceso.php?select="+idSelect  Destino+"&opcion="+opcionSeleccionada, true);
		ajax.onreadystatechange=function() 
		{ 
			if (ajax.readyState==1)
			{
 
				selectDestino.length=0;
				var nuevaOpcion=document.createElement("option"); nuevaOpcion.value=0; nuevaOpcion.innerHTML="Cargando...";
				selectDestino.appendChild(nuevaOpcion); selectDestino.disabled=true;	
			}
			if (ajax.readyState==4)
			{
				selectDestino.parentNode.innerHTML=ajax.responseTe  xt;
			} 
		}
		ajax.send(null);
	}
}
 
 
 
------select_dependientes_proceso.php--------
 
<?php require_once('Connections/XX.php'); ?>
 
<?php
 
$listadoSelects=array(
"select1"=>"select_1",
"select2"=>"select_2",
"select3"=>"select_3"
);
 
function validaSelect($selectDestino)
{
 
	if(isset($listadoSelects[$selectDestino])) return true;
	else return false;
}
 
function validaOpcion($opcionSeleccionada)
{
 
	if(is_numeric($opcionSeleccionada)) return true;
	else return false;
}
 
$selectDestino=$_GET["select"]; $opcionSeleccionada=$_GET["opcion"];
 
if(validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
{
	$tabla=$listadoSelects[$selectDestino];
	$consulta=mysql_query("SELECT id, opcion FROM $tabla WHERE relacion='$opcionSeleccionada'") or die(mysql_error());
 
 
 
	echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
	echo "<option value='0'>Elige</option>";
	while($registro=mysql_fetch_row($consulta))
	{
 
		$registro[1]=htmlentities($registro[1]);
 
		echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
	}			
	echo "</select>";
}
?>
 
 
Gracias! 
   
 

 a menos que no se seleccione ningún valor..
 a menos que no se seleccione ningún valor.. 

