Pasar valores a select de formulario
Publicado por Endika (14 intervenciones) el 25/08/2017 14:12:12
Buenas. Estoy trabajando con un formulario que contiene entre otras cosas provincias y municipios en dos selects. Hasta ahora he conseguido que al elegir una provincia del select con ID provincia, se pase a un fichero PHP que a su vez entra en un case con una función que arma una query y devuelve el valor de la query.
Mi problema es que no se cómo hacer para que esos valores lleguen al fichero que tiene el formulario y los vaya añadiendo al select con ID municipio. ¿me podéis ayudar? Estoy atascado en este punto. gracias de antemano. Comparto el código:
Esos son los dos campos del form, que están en un fichero. En el mismo fichero después tengo este script JS para enviar la provincia por AJAX a otro fichero PHP:
Ahora viene el código del case del fichero PHP que recibe lo que he enviado con el script:
Y por último, ese case llama a una función de otro fichero, que es esta:
Entonces, ¿cómo podría hacer para que los datos lleguen al fichero php que tiene el formulario y se añadan al select con ID municipio?
P.D: La query funciona bien. LLamando por el navegador a selectMunicipio y teniendo por defecto provinciaID = 1, me lista todos los municipios que corresponden a la provincia con ID =1 en la pantalla.
Mi problema es que no se cómo hacer para que esos valores lleguen al fichero que tiene el formulario y los vaya añadiendo al select con ID municipio. ¿me podéis ayudar? Estoy atascado en este punto. gracias de antemano. Comparto el código:
1
2
3
4
5
6
7
8
9
10
11
12
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Provincia:</label>
<select id="provincia" name="provincia" class="form-control selectpicker" data-live-search="true" required>
<option value="">Selecciona la provincia del cliente</option>
</select>
</div>
<div class="form-group col-lg-6 col-md-6 col-sm-6 col-xs-12">
<label>Municipio:</label>
<select id="municipio" name="municipio" class="form-control selectpicker" data-live-search="true" required>
<option value="">Selecciona provincia primero</option>
</select>
</div>
Esos son los dos campos del form, que están en un fichero. En el mismo fichero después tengo este script JS para enviar la provincia por AJAX a otro fichero PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<script src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//$('#provincia').on('change',function(){
$('#provincia').change(function(){
var provinciaID = $(this).val();
//var provinciaID = this.value;
var data = {'provinciaID': provinciaID};
if(provinciaID){
alert(provinciaID);
$.ajax({
type:'POST',
url:'../ajax/clientes.php?op=selectMunicipio',
data: data,
//data:provinciaID={provinciaID : provinciaID},
dataType:'json',
contentType: "application/x-www-form-urlencoded",
success: function(data){
//success:function(html){
alert(data);
$("#municipio").html(data);
$('#municipio').selectpicker('refresh');
$('#municipio').selectpicker('refresh');
}
});
}
});
});
</script>
Ahora viene el código del case del fichero PHP que recibe lo que he enviado con el script:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
case "selectMunicipio":
require_once "../modelos/Municipios.php";
$municipio = new Municipio();
if (empty($_POST['provinciaID'])) { $provinciaID="1";} else { $provinciaID=$_POST['provinciaID'];}
//$provinciaID=$_POST['provinciaID'];
echo($provinciaID);
$rspta = $municipio->select($provinciaID);
while ($reg = $rspta->fetch_object())
{
echo '<option value=' . $reg->id . '>' . $reg->municipio . '</option>';
}
return $provinciaID;
break;
Y por último, ese case llama a una función de otro fichero, que es esta:
1
2
3
4
5
6
7
8
public function select($provinciaID)
{
//$sql="SELECT m.id, m.provincia, m.municipio, p.id FROM municipios m INNER JOIN provincias p ON m.provincia=p.id";
//$sql="SELECT m.id, m.provincia, m.municipio FROM municipios m INNER JOIN provincias p ON m.provincia=p.id";
$sql="SELECT * FROM municipios WHERE provincia='$provinciaID'";
return ejecutarConsulta($sql);
}
Entonces, ¿cómo podría hacer para que los datos lleguen al fichero php que tiene el formulario y se añadan al select con ID municipio?
P.D: La query funciona bien. LLamando por el navegador a selectMunicipio y teniendo por defecto provinciaID = 1, me lista todos los municipios que corresponden a la provincia con ID =1 en la pantalla.
Valora esta pregunta
0