El código de los dos primeros select referenciados es el siguiente si tienes alguna pregunta no lo dudes.
Primero tienes que coger por get todas las variables.
Código PHP:
$tipo = (isset($_GET ["tipo"])) ? $_GET["tipo"] : $HTTP_GET_VARS["tipo"];
$fi = (isset($_GET ["fi"])) ? $_GET["fi"] : $HTTP_GET_VARS["fi"];
$fv = (isset($_GET ["fv"])) ? $_GET["fv"] : $HTTP_GET_VARS["fv"];
if ($tipo='ida'){
$fv='';
}
$ida = (isset($_GET ["ida"])) ? $_GET["ida"] : $HTTP_GET_VARS["ida"];
$vuelta = (isset($_GET ["vuelta"])) ? $_GET["vuelta"] : $HTTP_GET_VARS["vuelta"];
$pais = (isset($_GET ["pais"])) ? $_GET["pais"] : $HTTP_GET_VARS["pais"];
$ciudad = (isset($_GET ["ciudad"])) ? $_GET["ciudad"] : $HTTP_GET_VARS["ciudad"];
$aero = (isset($_GET ["aero"])) ? $_GET["aero"] : $HTTP_GET_VARS["aero"];
$paiso = (isset($_GET ["paiso"])) ? $_GET["paiso"] : $HTTP_GET_VARS["paiso"];
$ciudado = (isset($_GET ["ciudado"])) ? $_GET["ciudado"] : $HTTP_GET_VARS["ciudado"];
$aeroo = (isset($_GET ["aeroo"])) ? $_GET["aeroo"] : $HTTP_GET_VARS["aeroo"];
$adulto = (isset($_GET ["adulto"])) ? $_GET["adulto"] : $HTTP_GET_VARS["adulto"];
$ninos = (isset($_GET ["ninos"])) ? $_GET["ninos"] : $HTTP_GET_VARS["ninos"];
$edad1 = (isset($_GET ["edad1"])) ? $_GET["edad1"] : $HTTP_GET_VARS["edad1"];
$edad2 = (isset($_GET ["edad2"])) ? $_GET["edad2"] : $HTTP_GET_VARS["edad2"];
$edad3 = (isset($_GET ["edad3"])) ? $_GET["edad3"] : $HTTP_GET_VARS["edad3"];
$edad4 = (isset($_GET ["edad4"])) ? $_GET["edad4"] : $HTTP_GET_VARS["edad4"];
$edad5 = (isset($_GET ["edad5"])) ? $_GET["edad5"] : $HTTP_GET_VARS["edad5"];
y luego enviar en el select el valor de todas las variables, para no perderlas.
Código:
<tr>
<td colspan="2" class="textobold"> 4. Selecciona los datos del vuelo de origen.
<tr>
<td width="30%" align="right" class="t">
País:
<td width="70%" align="left">
<select name="pais" onChange="location = this.options[this.selectedIndex].value+ '&fi='+aeropuertos.fechai.value+'&fv='+aeropuertos.fechav.value+'&tipo='+aeropuertos.tipo.value+'&edad1'+aeropuertos.edad1.value+'&edad2'+aeropuertos.edad2.value+'&edad3'+aeropuertos.edad3.value+'&edad4'+aeropuertos.edad4.value+'&edad5'+aeropuertos.edad5.value;">
<option value="nulo">País</option>
<?php
$resultado = mysql_query("SELECT distinct(CND_NAME) from aeropuerto group by cnd_name order by cnd_name");
while ($linea=mysql_fetch_row($resultado)) {
if ($linea[0]==$pais){
echo ("<option value='formu.php?pais=".$linea[0]."&paiso=".$paiso."&aeroo=".$aeroo."&ciudado=".$ciudado."&adulto=".$adulto."&ninos=".$ninos."' selected>".$linea[0]."</option>\n");
}
else
{
echo ("<option value='formu.php?pais=".$linea[0]."&paiso=".$paiso."&aeroo=".$aeroo."&ciudado=".$ciudado."&adulto=".$adulto."&ninos=".$ninos."'>".$linea[0]."</option>\n");
}
}
?>
</select>
<input name="po" type="hidden" value="<?=$pais?>">
</td>
<tr>
<td width="30%" align="right" class="t">
Ciudad:
<td width="70%" align="left">
<select name="ciudada" onChange="location = this.options[this.selectedIndex].value+ '&fi='+aeropuertos.fechai.value+'&fv='+aeropuertos.fechav.value+'&tipo='+aeropuertos.tipo.value+'&edad1'+aeropuertos.edad1.value+'&edad2'+aeropuertos.edad2.value+'&edad3'+aeropuertos.edad3.value+'&edad4'+aeropuertos.edad4.value+'&edad5'+aeropuertos.edad5.value;">
<option value="nulo">Ciudades</option>
<?php
$cod=mysql_query("SELECT DISTINCT(CTD_NAME) from aeropuerto where CND_NAME='".$pais."' group by CND_NAME, CTD_NAME order by CTD_NAME");
while ($cod2=mysql_fetch_row($cod)) {
if ($cod2[0]==$ciudad){
echo ("<option value='formu.php?pais=".$pais."&ciudad=".$cod2[0]."&aero=".$aero."&paiso=".$paiso."&aeroo=".$aeroo."&ciudado=".$ciudado."&ida=".$ida."&vuelta=".$vuelta."&fi=".$fi."&fv=".$fv."&adulto=".$adulto."&ninos=".$ninos."' selected>".$cod2[0]."</option>\n");
}
else
echo ("<option value='formu.php?pais=".$pais."&ciudad=".$cod2[0]."&aero=".$aero."&paiso=".$paiso."&aeroo=".$aeroo."&ciudado=".$ciudado."&ida=".$ida."&vuelta=".$vuelta."&fi=".$fi."&fv=".$fv."&adulto=".$adulto."&ninos=".$ninos."'>".$cod2[0]."</option>\n");
}
?>
</select>
<input name="co" type="hidden" value="<?=$ciudad?>">
</td>
Como puedes ver lo que hago es recargar la página pasando por get todas las variables.