Buen día a todos.
Estoy realizando un buscador en mi sitio web pero me he atorado en unas especificaciones, estoy profundizando cada vez más dentro de la programación con PHP y MySQL, así como ajax pero me gustaría solicitarles un poco de ayuda para poder resolver el tema.
De qué va:
El sitio es un directorio en el que tenemos 4 campos selects
1. el primer select nos pregunta ¿qué queremos?
2. el segundo select tiene una relación de tablas en MySQL y se llena en base a la primer respuesta, este segundo select se muestra si sólo seleccionamos agentes, si es otra opción, desaparece del html:
3. el tercer select, tiene otra relación de tablas MySQL en donde se puede llenar tanto con la respuesta del primer select como del segundo, por aquello de que sólo con agentes se muestra el segundo select:
4. el cuarto select, se conecta a la tabla final en donde se encuentran los resultados y muestra los estados conforme estén integrados en la base de datos:
La duda que tengo y que no puedo resolver es que selecciono, la opción de promotor y quiero que desaparezca el select 2 y 3 y sólo se muestre el select 4.
De igual manera, cuando seleccione Aseguradoras, debe desaparecer el select 2 y 4 y se muestra solo el select 3.
Y que al final de todo se muestre el resultado conforme lo que se está buscando.
Agrego mis códigos:
Código PHP:
<!doctype html>
<!--[if lt IE 7]> <html class="ie6 oldie"> <![endif]-->
<!--[if IE 7]> <html class="ie7 oldie"> <![endif]-->
<!--[if IE 8]> <html class="ie8 oldie"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="es" class="">
<!--<![endif]-->
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1"/>
<!--<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> -->
<meta name="description" content="">
<title>Directorio inteligente | Seguropedia</title>
<?php include('menu_header.php') ?>
<main>
<section class="cont_general">
<div class="gridContainer clearfix">
<section class="principal">
<section class="publicidad_superior">
hola
</section>
<section class="menu_cintillo">
<a href="javascript:history.back(1)">Atrás</a> | <span>Resultado</span>
</section>
<div class="form_directorio">
<form class="contact_form" action="agentes_seguropedia.php" method="post">
<ul>
<li><label for="busqueda1">¿Qué buscas?</label>
<select name="ente" id="ente" onChange="filltipo(this.value)">
<?php
include("php/conexion.php");
$link = Conectarse();
$sql = "SELECT id,ente FROM entes ORDER BY id ASC ";
$Rs = mysql_query($sql) or die("No se pudo conectar con la base de datos.");
if( mysql_num_rows($Rs)){
while($Set = mysql_fetch_row($Rs)){
?>
<option value="<?php echo trim($Set[0]);?>"><?php echo trim($Set[1]);?></option>
<?php
}}
?>
</select></li>
Código Javascript
:
Ver original<script>
function filltipo(value){
$.post('ajax_tipo.php', { ente: value }, function (resp) {
$('#tipo').html("<option></option>");
if (resp.length>20){
document.getElementById('id_tipo').style.display='block';
$('#tipo').html(resp);
}
else {
document.getElementById('id_tipo').style.display='none';
}
fillramo();
});
}
function fillramo(){
var ente=document.getElementById('ente').value;
var tipo=document.getElementById('tipo').value;
$.post('ajax_ramo.php', { tipo: tipo,ente:ente }, function (resp) {
$('#ramo').html(resp);
});
}
function fillestado(){
var ente=document.getElementById('ente').value;
var tipo=document.getElementById('tipo').value;
var ramo=document.getElementById('ramo').value;
var estado=document.getElementById('estado').value;
$.post('ajax_estado.php', { ramo: ramo, ente:ente, tipo:tipo, estado:estado }, function (resp) {
$('#estado').html(resp);
});
}
</script>
Código PHP:
<li id="id_tipo">
<label for="busqueda1">Tipo</label>
<select name="tipo" id="tipo" onChange="fillramo()">
<option></option>
</select>
</li>
<li>
<label for="busqueda2">Ramo / Especialidad</label>
<select name="ramo" id="ramo" onChange="fillestado()">
</select>
</li>
<li>
<label for="busqueda4">Zona Geográfica</label>
<select name="estado" id="estado"></select>
</li>
<li>
<button type="submit" class="submit" style="margin-left:100px;width:200px;height:50px !important;font-size:1.75rem;">Buscar</button></li>
</ul>
</form>
</div>
</section>
</div>
</section>
</main>
<?php include('main_footer.php') ?>
Y los componentes:
ajax_tipo.php
Código PHP:
<?php
include("php/conexion.php");
$id_ente = $_POST["ente"];
$link = Conectarse();
$response = "";
$sql = "Select id,tipo from lista_tipos where id in (SELECT id_tipo FROM relacion_ente_tipo WHERE id_ente=".$id_ente.") ";
$Rs = mysql_query($sql) or die("No se pudo conectar con la base de datos.");
if( mysql_num_rows($Rs)){
while($Set = mysql_fetch_row($Rs)){
$response .= "<option value='".$Set[0]."'>".$Set[1]."</option>";
}}
echo $response;
?>
ajax_ramo.php
Código PHP:
<?php
include("php/conexion.php");
$ente = trim($_POST["ente"]);
$tipo = trim($_POST["tipo"]);
$filtro = "";
$filtro1 = "";
if ($ente!=""){
$filtro = "(select id_ramo from relacion_ente_ramo where id_ente=$ente)";
}
if ($tipo!=""){
$filtro1 = " AND id in (select id_ramo from relacion_tipo_ramo where id_tipo=$tipo)";
}
$link = Conectarse();
$response = "";
$sql = "SELECT id,ramo FROM lista_ramos WHERE id in ".$filtro." ".$filtro1." ORDER BY id ASC ";
$Rs = mysql_query($sql) or die("No se pudo conectar con la base de datos.");
if( mysql_num_rows($Rs)){
while($Set = mysql_fetch_row($Rs)){
$response .= "<option value='".$Set[0]."'>".$Set[1]."</option>";
}}
echo $response;
?>
ajax_estado.php
Código PHP:
<?php
include("php/conexion.php");
$ramo = $_POST["ramo"];
$ente = $_POST["ente"];
$tipo = $_POST["tipo"];
$estado = $_POST["estado"];
$filtro = "id_ente=$ente";
$link = Conectarse();
$response = "";
$sql = "SELECT estado,estado FROM integrantes WHERE ".$filtro." GROUP BY estado ORDER BY estado ASC";
$Rs = mysql_query($sql) or die("No se pudo conectar con la base de datos.");
if( mysql_num_rows($Rs)){
while($Set = mysql_fetch_row($Rs)){
$response .= "<option value='".utf8_encode($Set[0])."'>".utf8_encode($Set[1])."</option>";
}}
echo $response;
?>
Agradezco su atención.
Les envío saludos!!