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: 9 años, 4 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: 12 años, 5 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: 9 años, 4 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.valuefecha1 f1.valuefecha2 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 14:33.