Buenos dias..
tengo un script que me filtra por codigo , y en dos select por area y usuarios , estoy usando ajax , pero no logro que al darle click en el boton filtrar aparezca la tabla
gracias de antemano.
Código HTML:
[PHP]<?php include("conexion.php") ?> <!DOCTYPE html> <html lang="es"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Filtro </title> <link rel="stylesheet" type="text/css" href="assets/css/style.css"/> <style type="text/css"> /* CSS demo */ #content{ padding:20px 0 0 10px } #content .filtro{ overflow:hidden; padding-bottom:15px } #content .filtro select{ width:100px } #content .filtro ul{ list-style:none; padding:0 } #content .filtro li{ float:left; display:block; margin:0 5px } #content .filtro li a{ color:#006; position:relative; top:5px; text-decoration:underline } #content .filtro li label{ float:left; padding:4px 5px 0 0 } #content table{ border-collapse:collapse; width:940px; } #content table th{ border:1px solid #999; padding:8px; background:#F8F8F8 } #content table th span{ cursor:pointer; padding-right:12px } #content table th span.asc{ background:url(assets/imgs/sorta.gif) no-repeat right center; } #content table th span.desc{ background:url(assets/imgs/sortd.gif) no-repeat right center; } #content table td{ border:1px solid #999; padding:6px } </style> <link rel="stylesheet" type="text/css" href="assets/jqueryui/css/smoothness/jquery-ui-1.8.16.custom.css"/> <script type="text/javascript" src="assets/js/jquery-1.7.2.min.js"></script> <script type="text/javascript" src="assets/jqueryui/js/jquery-ui-1.8.16.custom.min.js"></script> <script type="text/javascript" src="assets/js/js.js"></script> </head> <body> <div id="content"> <div class="filtro"> <form id="frm_filtro" method="post" action=""> <ul> <li><label>Fecha Adquisición: del</label> <input type="text" name="del" id="del" size="15" class="datepicker" /> al <input type="text" name="al" id="al" size="15" class="datepicker" /></li> <li><label>Codigo:</label> <input type="text" name="codigo" size="25" /></li> <li><label>Usuario:</label> <select name="usuarios"> <option value="0">--</option> <!-- Listar Paises --> <?php $query = mysql_query("SELECT * FROM usuarios"); while($row = mysql_fetch_array($query)){ ?> <option value="<?php echo $row['id_usuario'] ?>"> <?php echo $row['nombre_usuario'] ?> </option> <?php } ?> </select> </li> <li><label>Areas:</label> <select name="areas"> <option value="0">--</option> <!-- Listar Paises --> <?php $query = mysql_query("SELECT * FROM areas"); while($row = mysql_fetch_array($query)){ ?> <option value="<?php echo $row['id_area'] ?>"> <?php echo $row['nombre_area'] ?> </option> <?php } ?> </select> </li> <li> <button type="button" id="btnfiltrar">Filtrar</button> </li> <li> <a href="javascript:;" id="btncancel">Todos</a> </li> </ul> </form> </div> <table cellpadding="0" cellspacing="0" id="data"> <thead> <tr> <th width="22%"><span title="nacimiento">Fecha Nacimiento</span></th> <th width="35%"><span title="nombre">Nombre</span></th> <th width="30%"><span title="email">Email</span></th> <th><span title="nombre_pais">Pais</span></th> </tr> </thead> <tbody> </tbody> </table> </div> </body> </html>[/PHP]
Código PHP:
[HTML]<?php
include("conexion.php");
if($_GET['action'] == 'listar')
{
// valores recibidos por POST
$vnm = $_POST['codigo'];
$vusuarios = $_POST['usuarios'];
$vareas = $_POST['areas'];
$vdel = ($_POST['del'] != '' ) ? explode("/",$_POST['del']) : '';
$val = ($_POST['al'] != '' ) ? explode("/",$_POST['al']) : '';
$sql = "SELECT * FROM usuarios
WHERE nombre_usuario: = id_usuario ";
// Vericamos si hay algun filtro
$sql .= ($vnm != '') ? " AND hojavidaequipo where codigo='$vnm' LIKE '%$vnm%'" : "";
$sql .= ($vusuarios > 0) ? " AND usuarios.nombre_usuario = '".$vpais."'" : "";
$sql .= ($vdel && $val) ? " AND hojavidaequipo.fecha BETWEEN '$vdel[2]-$vdel[1]-$vdel[0]'
AND '$val[2]-$val[1]-$val[0]' " : "";
// Ordenar por
$vorder = $_POST['orderby'];
if($vorder != ''){
$sql .= " ORDER BY ".$vorder;
}
$query = mysql_query($sql);
$datos = array();
while($row = mysql_fetch_array($query))
{
$datos[] = array(
'id' => $row['id'],
'codigo' => $row['codigo'],
'areas' => $row['areas'],
'usuarios' => $row['usuarios'],
'fecha' => $row['fecha']
);
}
// convertimos el array de datos a formato json
echo json_encode($datos);
}
?>[/HTML]
Código:
// JavaScript Document
var ordenar = '';
$(document).ready(function(){
// Llamando a la funcion de busqueda al
// cargar la pagina
filtrar()
var dates = $( "#del, #al" ).datepicker({
yearRange: "-50",
defaultDate: "+1w",
changeMonth: true,
changeYear: true,
onSelect: function( selectedDate ) {
var option = this.id == "del" ? "minDate" : "maxDate",
instance = $( this ).data( "datepicker" ),
date = $.datepicker.parseDate(
instance.settings.dateFormat ||
$.datepicker._defaults.dateFormat,
selectedDate, instance.settings );
dates.not( this ).datepicker( "option", option, date );
}
});
// filtrar al darle click al boton
$("#btnfiltrar").click(function(){ filtrar() });
// boton cancelar
$("#btncancel").click(function(){
$(".filtro input").val('')
$(".filtro select").find("option[value='0']").attr("selected",true)
filtrar()
});
// ordenar por
$("#data th span").click(function(){
var orden = '';
if($(this).hasClass("desc"))
{
$("#data th span").removeClass("desc").removeClass("asc")
$(this).addClass("asc");
ordenar = "&orderby="+$(this).attr("title")+" asc"
}else
{
$("#data th span").removeClass("desc").removeClass("asc")
$(this).addClass("desc");
ordenar = "&orderby="+$(this).attr("title")+" desc"
}
filtrar()
});
});
function filtrar()
{
$.ajax({
data: $("#frm_filtro").serialize()+ordenar,
type: "POST",
dataType: "json",
url: "ajax.php?action=listar",
success: function(data){
var html = '';
if(data.length > 0){
$.each(data, function(i,item){
html += '<tr>'
html += '<td>'+item.codigo+'</td>'
html += '<td>'+item.areas+'</td>'
html += '<td>'+item.usuarios+'</td>'
html += '<td>'+item.fecha+'</td>'
html += '</tr>';
});
}
if(html == '') html = '<tr><td colspan="4" align="center">No se encontraron registros..</td></tr>'
$("#data tbody").html(html);
}
});
}
:adios:



