Estoy usando el script que hay en las faqs para combos selectivos de Kaopectate. Lo he intentado adaptar con php para que sea dinámico. Creo que estoy cerca, pero no logro sacarlo adelante. Alguien me podría hechar una mano para encontrar el error, que hace que no me funcione el segundo combo??????????
Muchas gracias de antemano:os dejo el código:
entre <head>
Código PHP:
<script language="JavaScript">
function addOpt(oCntrl, iPos, sTxt, sVal){
var selOpcion=new Option(sTxt, sVal);
eval(oCntrl.options[iPos]=selOpcion);
}
function cambia(oCntrl){
while (oCntrl.length) oCntrl.remove(0);
switch (document.frm.provincia.selectedIndex){
/*Hacemos una consulta para sacar todas las poblaciones y las vamos a agrupar por para que no se repitan, y ordenarlas ascendentemente.*/
<?php
$sql= "select id_provincia
from provincias
group by id_provincia
order by id_provincia";
$result=mysql_query("$sql",$link) or die(mysql_error());
$j=0;
while($row=mysql_fetch_array($result))
{
$id_provincia=$row["id_provincia"];
?>
/* Una vez sacado las provincias, realizamos un bucle para que se vallan imprimiendo en el case, y cada vez que se realiza el bucle muestra la siguiente provincia.*/
case <?php echo $j; $j++; ?>:
/*hacemos una consulta para sacar el nombre de la poblacion y el id donde coincida provincia con el nombre de la provincia sacada en la anterior consulta para que no me imprima todos los resultados.*/
<?php
$sql_restaurante="select id_turismo, poblacion
from oficinas_turismo
where id_provincia='$id_provincia'";
$result_restaurante=mysql_query("$sql_restaurante",$link) or die(mysql_error());
$n=0;
while($row_restaurante=mysql_fetch_array($result_restaurante)) {
$id_turismo=$row_restaurante["id_turismo"];
$poblacion=$row_restaurante["poblacion"];
?>
/*necesitamos sacar la posición de las poblaciones para saber su orden, para ello cada vez que se imprime , suma una posición a la poblacion. */
addOpt(oCntrl, <? echo $n;?>, "<?php echo $poblacion; ?>", "<?php echo $id_turismo; ?>");
<?php $n++;
}?>
break;
<?php
}
?>
}
}
</script>
Y el formulario:
Código PHP:
<form action="buscador.php" method="post" name="frm" >
<?php
$sql=("select id_provincia, provincia
from provincias
group by provincia
order by provincia");
$result=mysql_query("$sql",$link) or die(mysql_error());
?>
<select name="provincia" class="campos_formulario" onChange="cambia(document.frm.poblacion)">
<?
$p=0;
while($row=mysql_fetch_array($result))
{
$id_provincia=$row["id_provincia"];
$provincia=$row["provincia"];
?>
<option value="<? echo $provincia; $p++; ?>"> <?php echo $provincia; ?></option>
<?
}
?>
</select>
<!-- Sacamos la poblacion.-->
<?php
$sql=("select poblacion
from oficinas_turismo
order by poblacion asc
limit 1");
$result=mysql_query("$sql",$link) or die(mysql_error());
?>
<select name="poblacion" class="campos_formulario" >
<?
while($row=mysql_fetch_array($result))
{
$id_turismo=$row["id_turismo"];
$poblacion=$row["poblacion"];
?>
<option value="<? echo $id_turismo; ?>"> <? echo $poblacion; ?> </option>
<?
} ?>
</select>
<input name="poblacion" type="hidden" id="poblacion" value="<?php echo $poblacion; ?>">
<input name="submit" type="submit" value="Buscar">
</form>