Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Filtrar entre fechas con Javascript

Estas en el tema de Filtrar entre fechas con Javascript en el foro de Jquery en Foros del Web. Hola, tengo un problema, os cuento. Tengo un archivo en el que estoy listando desde una BD una serie de campos. Tengo hecho un filtro ...
  #1 (permalink)  
Antiguo 04/12/2015, 06:47
 
Fecha de Ingreso: diciembre-2014
Mensajes: 13
Antigüedad: 11 años, 10 meses
Puntos: 0
Filtrar entre fechas con Javascript

Hola, tengo un problema, os cuento. Tengo un archivo en el que estoy listando desde una BD una serie de campos. Tengo hecho un filtro de búsqueda con una función en javascript para buscar valores sueltos, pero ahora necesito poder introducir dos fechas y que me muestre todos los resultados que hay en la BD entre esas dos fechas. Mi código esta así:

Código PHP:
<h1>Siniestros</h1>
<input type="search" placeholder="Compa&ntilde;&iacute;a o cliente" id="buscarSiniestro"><button onclick="buscarSiniestro('contenido','siniestros','listar')">Buscar</button>
 <?php
include "../conexion.php";
if(isset(
$_GET['buscar'])) {
    
$condicion = "WHERE idcia LIKE '%".$_GET['buscar']."%' or idcliente LIKE '%".$_GET['buscar']."%'or matricula LIKE '%".$_GET['buscar']."%'or marca LIKE '%".$_GET['buscar']."%'or modelo LIKE '%".$_GET['buscar']."%'or nsiniestro LIKE '%".$_GET['buscar']."%'or fechasiniestro LIKE '%".$_GET['buscar']."%'or fechafactura LIKE '%".$_GET['buscar']."%'";
}else{
$condicion = "";
}
$articulos = mysqli_query($mysqli,"SELECT * FROM siniestros $condicion ORDER by fechasiniestro");
if(
$art = mysqli_fetch_array($articulos)) {
    echo 
'<table width="100%" class="listado">';
    echo 
'<tr>
    <td>Fecha Siniestro</td>
    <td>Matr&iacute;cula</td>
    <td>Marca</td>
    <td>Modelo</td>
    <td>Compa&ntilde;&iacute;a</td>
    </tr>'
;
    do{
        
$idart = $art['idcia'];
$articulo2 = mysqli_query($mysqli,"SELECT * FROM companias WHERE id = '$idart'");
$art2 = mysqli_fetch_array($articulo2);
    echo 
'<tr onclick="verSiniestro('.$art['id'].')">
    <td>'
.cFecha($art['fechasiniestro']).'</td>
    <td>'
.$art['matricula'].'</td>
    <td>'
.$art['marca'].'</td>
    <td>'
.$art['modelo'].'</td>
    <td>'
.$art2['nombre'].'</td>
    <td height= "17" bgcolor="#638cb5"><button type="button" name="modificar" onclick="verSiniestro('
.$art['id'].')">Modificar</button></td>'; ?>
    <td height= "17" bgcolor="#638cb5"><button type="button" name="borrar"  onclick="borrarID(<?=$art['id']?>,'siniestros','listar','siniestros')">Borrar</button></td>
        <?php echo'
    </tr>'
;
    }while(
$art = mysqli_fetch_array($articulos));
    echo 
'</table>';
}else{}
?>
lo que necesito es introducir 2 fechas y que me filtre entre ambas fechas del campo "fechasiniestro" de la BD. Mi código para la busqueda es así (lo tengo en un archivo aparte):

Código:
function buscarSiniestro(div) {
	var query = document.getElementById("buscarSiniestro");
	cargando(1);
	$.get("siniestros/listar.php",{ buscar : query.value},function(mostrar){
		document.getElementById(div).innerHTML = mostrar;
		cargando(2);
		});
}
A ver si me podeis ayudar, gracias
  #2 (permalink)  
Antiguo 04/12/2015, 12:42
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 14 años, 11 meses
Puntos: 977
Respuesta: Filtrar entre fechas con Javascript

Puedes usar dos <input type="date" /> o el widget datepicker de jQuery UI para seleccionar las fechas. Ambas llegarán al lado del servidor y la consulta tendría que tener una forma similar a la siguiente:

Código MySQL:
Ver original
  1. SELECT [campos] FROM [tabla] WHERE [campo] BETWEEN [fecha1] AND [fecha2]

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

― Ayn Rand
  #3 (permalink)  
Antiguo 10/12/2015, 03:41
 
Fecha de Ingreso: diciembre-2014
Mensajes: 13
Antigüedad: 11 años, 10 meses
Puntos: 0
Respuesta: Filtrar entre fechas con Javascript

Cita:
Iniciado por Alexis88 Ver Mensaje
Puedes usar dos <input type="date" /> o el widget [URL="https://jqueryui.com/datepicker/"][inline]datepicker[/inline][/URL] de jQuery UI para seleccionar las fechas. Ambas llegarán al lado del servidor y la consulta tendría que tener una forma similar a la siguiente:

Código MySQL:
Ver original
  1. SELECT [campos] FROM [tabla] WHERE [campo] BETWEEN [fecha1] AND [fecha2]

Un saludo
Hola, muchas gracias por la respuesta. Ya lo he podido hacer, pongo como lo he hecho por si a alguien le sirve:

Código PHP:
<h1>Siniestros</h1>
<input type="date" id="fecha1" value="<?=$_GET['fecha1']?>"/>
<input type="date" id="fecha2"  value="<?=$_GET['fecha2']?>"/>
<input type="search" placeholder="Compa&ntilde;&iacute;a o cliente" id="buscarSiniestro"  value="<?=$_GET['buscar']?>">
<button onclick="buscarSiniestro('contenido','siniestros','listar')">Buscar</button>
 <?php
include "../conexion.php";
if(isset(
$_GET['buscar']) and $_GET['buscar']!="") {
    
$condicion = "WHERE nombrecia LIKE '%".$_GET['buscar']."%' or idcliente LIKE '%".$_GET['buscar']."%'or matricula LIKE '%".$_GET['buscar']."%'or marca LIKE '%".$_GET['buscar']."%'or modelo LIKE '%".$_GET['buscar']."%'or nsiniestro LIKE '%".$_GET['buscar']."%'";
}elseif(isset(
$_GET['fecha2'])) {
    
$fecha1 = $_GET['fecha1'];
    
$fecha2 = $_GET['fecha2'];
$condicion = "WHERE fechasiniestro BETWEEN '$fecha1' and '$fecha2'";
}else{
$condicion = "";    
}
$articulos = mysqli_query($mysqli,"SELECT * FROM siniestros $condicion");
if(
$art = mysqli_fetch_array($articulos)) {
    echo 
'<table width="100%" class="listado">';
    echo 
'<tr>
    <td>Fecha Siniestro</td>
    <td>Matr&iacute;cula</td>
    <td>Marca</td>
    <td>Modelo</td>
    <td>Compa&ntilde;&iacute;a</td>
    </tr>'
;
    do{
        
$idart = $art['idcia'];
$articulo2 = mysqli_query($mysqli,"SELECT * FROM companias WHERE id = '$idart'");
$art2 = mysqli_fetch_array($articulo2);
    echo 
'<tr onclick="verSiniestro('.$art['id'].')">
    <td>'
.cFecha($art['fechasiniestro']).'</td>
    <td>'
.$art['matricula'].'</td>
    <td>'
.$art['marca'].'</td>
    <td>'
.$art['modelo'].'</td>
    <td>'
.$art2['nombre'].'</td>
    <td height= "17" bgcolor="#638cb5"><button type="button" name="modificar" onclick="verSiniestro('
.$art['id'].')">Modificar</button></td>'; ?>
    <td height= "17" bgcolor="#638cb5"><button type="button" name="borrar"  onclick="borrarID(<?=$art['id']?>,'siniestros','listar','siniestros')">Borrar</button></td>
        <?php echo'
    </tr>'
;
    }while(
$art = mysqli_fetch_array($articulos));
    echo 
'</table>';
}else{}
?>
y así quedaría el Javascript:

Código PHP:
function buscarSiniestro(div) {
    var 
query = document.getElementById("buscarSiniestro");
    var 
f1 = document.getElementById("fecha1");
    var 
f2 = document.getElementById("fecha2");
    
cargando(1);
    $.
get("siniestros/listar.php",{ buscar : query.value, fecha1 : f1.value, fecha2 : f2.value},function(mostrar){
        
document.getElementById(div).innerHTML = mostrar;
        
cargando(2);
        });
} 

Etiquetas: filtrar, input, javascript, php, select, valor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:33.