Yo lo haría con Ajax:
En el mismo documento, hago referencia al archivo JS en donde haré la petición asíncrona:
Código Javascript
:
Ver original$("#continentes").change(function(){
if ($(this).val() > 0){
$.ajax({
url: "paises.php",
data: "continente=" + $(this).val(),
success: function(response){
$("#p").html(response);
}
});
}
});
Y en el archivo paises.php:
Código PHP:
Ver original<?php
$continente = $_GET["continente"];
$query = mysql_query("SELECT * FROM paises WHERE id_continente = $continente"); ?>
<select id = "paises">
<?php
?>
<option value = "<?php echo $row["id"]; ?>"><?php echo $row["nombre_pais"]; ?></option>
<?php
}
?>
</select>
<?php
}
else{
echo "No se encontraron países coincidentes con el continente seleccionado";
}
Básicamente, cuando elijas un continente de la lista, enviarás al archivo
paises.php el código de dicho continente, lo buscarás en la tabla de los países en la BD y si se encuentran datos que le correspondan (países relacionados al continente seleccionado), mostramos un combo al que cargaremos con los países encontrados para el continente seleccionado. Finalmente, esto es insertado en el Div de Id "p" que se encuentra en el primer archivo, en el que también está el combo de los continentes.
Estoy utilizando la extensión
MySQL para que sea más comprensible la explicación, pero te recomiendo que empieces usar la extensión
MySQLi pues la anterior ya no se recomienda seguir utilizándola pues será eliminada en futuras versiones de PHP.
Ten en cuenta que para este ejemplo, hago uso de la librería
jQuery de JavaScript, por lo que te sugiero que la incluyas en tu documento de esta forma:
Saludos