Buen día!
Tengo un código típico para buscar en una Base de datos...
Funciona bien, con un input text, escribes lo que buscas y en un div va dando los resultados.
busqueda.php
Código HTML:
<script src="planteles/ajax.js" language="javascript"></script>
<input type="text" size="40" id="valor" onkeyup="Buscar();" /><br />
<div style="width:100%; min-height:100px; border:1px dashed #FF0000;" id="resultados"></div>
ajax.js
function Buscador(){var xmlhttp=false;try {xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");} catch (e) {try {xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");} catch (E) {xmlhttp = false;}}if (!xmlhttp && typeof XMLHttpRequest!='undefined') {xmlhttp = new XMLHttpRequest();}return xmlhttp;
}
function Buscar() {
q = document.getElementById('valor').value;
c = document.getElementById('resultados');
ajax = Buscador();
ajax.open("GET","planteles/procesar.php?q="+q);
ajax.onreadystatechange=function() {
if (ajax.readyState == 4) {
c.innerHTML = ajax.responseText;
}
}
ajax.send(null)
}
procesar.php
Código PHP:
<?php
include("config.php");
$c= new Buscador;
$c->Conectar();
$q = $_GET['q'];
if ($q==null) {
print '';
}else{
$c->Buscar($q);
}
?>
config.php
Código PHP:
<?php
class Buscador {
var $host='localhost',$user='USUARIO',$pass='CONTRASEÑA',$db='BASE DE DATOS',$c_Servidor='Se conecto con el servidor correctamente',$i_Servidor='No se conecto con el servidor',$c_DB='Se selecciono correctamente la DB',$i_DB='No se selecciono la DB';
function Conectar() {
if(!@mysql_connect($this->host,$this->user,$this->pass)){
print $this->i_Servidor;
}else{
if(!@mysql_select_db($this->db)){
print $this->i_DB;
}
}
}
function Buscar($q) {
$query = mysql_query("SELECT * FROM registro WHERE tipo LIKE '%$q%' OR nivel LIKE '%$q%' OR nombre LIKE '%$q%'");
if(mysql_num_rows($query)<=0){
print 'No se encontro ningun resultado';
}else{
print '<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td>ID</td>
<td>Tipo</td>
<td>Nivel</td>
<td>Nombre</td>
</tr>';
while ($row = mysql_fetch_assoc($query)){
print '<tr>
<td>'.$row['id'].'</td>
<td>'.$row['tipo'].'</td>
<td>'.$row['nivel'].'</td>
<td>'.$row['nombre'].'</td>
</tr>';
}
print '</table>';
}
}
}
?>
Como les decía, la busqueda es por medio de input text. Pero lo que necesito y no consigo es modificar el codigo de manera que funcione con SELECT como "FILTROS".
En la base de datos tengo la tabla que contiene los datos de TIPO, NIVEL, NOMBRE, MUNICIPIO.
Por lo cual, necesito que me aparesca algo asi;
<select id="tipo">
<option>A</option>
<option>B</option>
</select>
Al seleccionar el tipo, salgan los resultados de los niveles que coinciden con ese tipo:
<select id="nivel">
<option>1</option>
<option>2</option>
</select>
Al seleccionar el nivel, salgan los resultados que coinciden con ese tipo y nivel.
<select id="municipio">
<option>35</option>
<option>36</option>
</select>
Al seleccionar el municipio, salgan los resultados que coinciden con ese tipo, nivel y municipio.
<select id="nombre">
<option>NOMBRE1</option>
<option>NOMBRE2</option>
</select>
Y al final este select es el que necesito.
Si no me supe explicar o no entendieron esta un ejemplo en cinepolis.com en la parte de arriba, un cuadro amarillo... ahí esta algo como lo que necesito.
De antemano agradezco su ayuda...