Tengo dos select box, uno con provincias y otro con ciudades. Quiero que cuando se seleccione una provincia, el select box de las ciudades se actualice con los valores recibidos a partir de una llamada AJAX, pero algo falla y sus valores no cambian.
Éste es el código donde se realiza la llamada AJAX:
<!--ajax-->
<script type="text/javascript">
$(document).ready(function(){
$('#provincia').on('change',function(){
var provincia = $(this).val();
$.ajax({
type:"POST",
dataType:'html',
url : "pages/prueba.php",
data : { opcion: provincia },
success: function(response){
alert("HOLA");
$("#ciudadID").html(response);
}
error: function() {
alert('Error occured');
}
});
});
}
</script>
Y éste es el código de prueba.php:
<?php
if(isset($_REQUEST["opcion"]))
{
$opciones = '<option value="0">"Elige la ciudad"</option>';
$conexion = new mysqli("localhost","root", "", "tu_valor");
$sqlCIU = "SELECT DISTINCT ciudad FROM establecimiento WHERE provincia ='" . $_REQUEST['opcion'] . "'";
$resCIU = $conexion->query($sqlCIU);
while( $fila = $resCIU->fetch_array() )
{
$opciones.='<option value="'.$fila[0].'">'.$fila[0].'</option>';
}
// Liberar resultados
mysqli_free_result($resCIU);
// Cerrar la conexión
mysqli_close($conexion);
echo $opciones;
}
?>
<!-- html con los select box -->
<select name="provincia" id="provincia" class="form-control">
<option value="" selected>Elige la provincia</option>
<?PHP
$conexion = new mysqli("localhost","root", "", "tu_valor");
$acentos = $conexion->query("SET NAMES 'utf8'");
$sqlPROV = "SELECT DISTINCT provincia FROM establecimiento";
if ($resPROV = $conexion->query($sqlPROV))
{
while ($fila = $resPROV->fetch_row())
{
echo "<option value='" . $fila[0] . "' >" . $fila[0] . "</option>";
}
$resPROV->close();
}
?>
</select>
</div>
<div class="form-group">
<select name="ciudad" id="ciudadID" class="form-control">
<option selected>Elige tu ciudad</option>