Yo lo que hice fue esto:
busqueda.php
Código PHP:
Ver originalfunction generaSelect()
{
include 'conexion.php';
conectar();
$consulta=pg_query("SELECT id, nombre FROM tabla"); desconectar();
// Voy imprimiendo el primer select compuesto por los paises
echo "<select name='select1' id='uno' onChange='cargaContenido(this.id)'>";
echo "<option value='0'>Elige</option>";
{
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
$_SESSION['array'][]=$registro[0];//Se almacena la primera consulta en el arreglo de sesiones
}
echo "</select>";
}
proceso.php
Código PHP:
Ver originalif(validaSelect($selectDestino) && validaOpcion($opcionSeleccionada))
{
$tabla=$listadoSelects[$selectDestino];
include 'conexion.php';
conectar();
$consulta=pg_query("SELECT id, nombre FROM $tabla WHERE num='$opcionSeleccionada'"); desconectar();
// Comienzo a imprimir el select
echo "<select name='".$selectDestino."' id='".$selectDestino."' onChange='cargaContenido(this.id)'>";
echo "<option value='0'>Elige</option>";
{
// Convierto los caracteres conflictivos a sus entidades HTML correspondientes para su correcta visualizacion
// Imprimo las opciones del select
echo "<option value='".$registro[0]."'>".$registro[1]."</option>";
$_SESSION['array'][]=$registro[0]; //Almaceno los Selects en un arreglo de sesiones
}
if ($selectDestino)
echo "</select>";
}
Y esto en el resultado:
Código PHP:
Ver original"select1"=>"uno",
"select2"=>"dos",
"select3"=>"tres",
"select4"=>"cuatro",
"select5"=>"cinco"
);
/* Si quieras prueba esto descomentandolo para chequear los valores de los selects
echo "uno=\n\n".$_POST['select1'];
echo " dos=\n\n".$_POST['select2'];
echo " tres=\n\n".$_POST['select3'];
echo " cuatro=\n\n".$_POST['select4'];
echo " cinco=\n\n".$_POST['select5'];*/
$select[1]=$_POST['select1'];
$select[2]=$_POST['select2'];
$select[3]=$_POST['select3'];
$select[4]=$_POST['select4'];
$select[5]=$_POST['select5'];
En este caso tengo 5 selects dependientes, y todos funcionan correctamente, con el arreglo de sesiones