Tengo un problema con una búsqueda con filtros a través de varios select que se envían uno por uno,

Envío el primero y compruebo en una consulta en mysql y funciona, envío el segundo y también funciona, el problemas es que al enviar el tercer select no me muestra nada ya que al estar enviando se eliminan los demás valores.

<form style="width: 480px">

<label>Estado:</label>
<select name="id_estado" id="estado" class="select" onChange='cargarestado(this.value)'>
<option value="">- Seleccione un Estado -</option>
<?php
$estados = dameEstado();
foreach($estados as $indice => $registro){
echo "<option value=".$registro['id_estado'].">".$registro['id_estado']."...".$registro['descripcion']."</option>";
}
?>
</select>

//select 2.
<br><br>
<label>Municipio:</label>
<select name="id_municipio" id="municipio" onChange='cargarmunicipio(this.value)'>
<option value="">- Primero selección un estado -</option>
</select>
<br><br>

//select 3.
<label>Especialidad:</label>
<select name="category_id" id="category_id" onChange='cargar(this.value)'>
<option value="">- Primero seleccione un municipio -</option>
</select><p>

 $sql = "SELECT * FROM ".TABLE_xxx." WHERE state_id='$id_estado' OR id_municipio='$id_municipio' or (category_id='$category_id' AND id_municipio='$id_municipio' );";

2 respuestas

Respuesta

El detalle es volver a recibir los datos nuevamente para seleccionar dicho valor, es decir, esto lo tienes que hacer en cada envío

¿

<?php

$id_municipio=($id_municipio!='')?$id_municipio:"";

?>

<option value="<?php echo $id_municipio;?>"><?php echo $id_municipio?>-</option>

Ahora si quieres que vuelva a cambiar puedes volver a imprimir el arreglo y seleccionar el indice enviado.

Por ultimo puedes usar también un plugin con jquery, puedes verificarlo en el siguiente enlace:

http://www.prodiven.com/jcombo/?lang=es   --> aquí puedes utilizar AJAX para el envio sin perdida.  

y si usas boostrap, también hay otro plugin.

http://develoteca.com/plugin-tabcomplete-ayuda-completar-informacion-en-un-formulario/ 

Respuesta

Seria interesante ver el Javascript de las funciones cargar. Para obtener el valor seleccionado, escribe algo así como..

... onChange="cargarestado(this)" ...
function cargarestado(obj){
alert('Valor: '+obj.options[obj.selectedIndex].value);
}

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas