Affiché les résultat d'une requete avec une date php et js

Mammouth du PHP | 643 Messages

14 juil. 2016, 21:22

Salut à tous.
Voilà le problème du jour ;p

Enfait mon code marche bien maintenant, merci à certains d'ailleurs mais j'ai rajouté des boutons que j'avais sur l'ancienne version qui permet de filtrer les résultats avec Aujourd'hui .... Demain.... Ce week end...

Mais les boutons ne réagisse pas...
J'ai donc ma page avec mes requetes:

Page à la racine: list.php
$sql = 'SELECT * FROM loisirs JOIN `regions` ON `regions`.`region_id` = `loisirs`.`id_region` WHERE  loisirs.date_fin_sortie > NOW() AND loisirs.valide = 1';
	// region
	if(!empty($_REQUEST['region'])){
	  // FIXME : sql injectin spoted
	  $sql .= ' AND regions.url = \''.$_REQUEST['region'].'\'' ;
	}
	if(!empty($_REQUEST['departement'])){
	  $sql .=  ' AND loisirs.id_departements = '.$_REQUEST['departement'];
	}
	
	if(!empty($_REQUEST['loisir']) ){
	  // FIXME : sql injectin spoted
	  $sql .=  ' AND loisirs.genre_loisir = \''.$_REQUEST['loisir'].'\'' ; // loisir
	}
	
	// Recherche par date
	// FIXME : $du et $au n'existe pas ici ;)
	// FIXME : sql injectin spoted
	if(!empty($du) && !empty($au)) {
	  $sql .= ' AND (DATE_FORMAT(loisirs.date_debut_sortie, \'%Y-%m-%d\') <= \''.$du.'\' AND DATE_FORMAT(loisirs.date_fin_sortie, \'%Y-%m-%d\') >= \''.$au.'\')';
	}
	
	 // Recherche par ville
	if(!empty($_REQUEST['ville'])) {
	  $sql .= ' AND loisirs.city = \''. getRealValue($_REQUEST['ville']). '\'';
	}
	
	// Recherche par salle
	if(!empty($_REQUEST['manufacturer'])){
	  $sql .= ' AND loisirs.manufacturer = \''. getRealValue($_REQUEST['manufacturer'] , 'manufacturer') .'\'';
	}

if (empty($_REQUEST['loisir']) && empty($_GET['page']) && empty($_REQUEST['departement'])) {
		$sql .= ' GROUP BY id_type_loisirs ORDER BY loisirs.id_loisirs';
		}else {
		  $sql .= 'ORDER BY loisirs.id_loisirs';
		}
		$sql .= ' DESC LIMIT '.intval(($page-1)*$parPage).', '.$parPage ;
		
		// la première partie de la requête permet de filtrer et de grouper, celle ci d'avoir les données
		$sqlFinal = 'SELECT * FROM loisirs JOIN regions ON regions.region_id = loisirs.id_region WHERE loisirs IN ('.$sql.')';
		
		$sqlFinal;
		
		
		$req = $bdd->query($sql);
Plus loin ds la même page:
<!-- Filtre rapide -->
        <div class="filter-tabs">
        <div class="navbar-header">
        <button type="button" class="navbar-toggle collapsed pull-left" data-toggle="collapse" data-target="#nav-secondary" aria-expanded="false" aria-controls="navbar">
        <span class="sr-only pink_filter">Toggle navigation</span>
        FILTRE RAPIDE <i class="fa fa-clock-o"></i>
        </button>       
        </div>
        
        <!-- Filtre rapide -->
        <div id="nav-secondary" class="navbar-collapse collapse">
        <ul class="nav navbar-nav time">
        <li class="active"><a href="#home" data-du="" data-au="" data-page="1" data-toggle="tab" >Toutes </a></li>
        <li><a href="#profile" data-du="<?php echo date('Y-m-d'); ?>" data-au="<?php echo date('Y-m-d'); ?>" data-page="1" data-toggle="tab">Aujourd'hui </a></li>
        <li><a href="#messages" data-du="<?php echo date('Y-m-d', strtotime('+1 day')); ?>" data-au="<?php echo date('Y-m-d', strtotime('+1 day')); ?>" data-page="1" data-toggle="tab">Demain </a></li>
        <li><a href="#settings" data-du="<?php $strtotime = (date('N') == 7) ? 'Saturday - '.date('N').' days' : 'Saturday'; echo date('Y-m-d', strtotime($strtotime)); ?>" data-au="<?php echo date('Y-m-d', strtotime('Sunday')); ?>" data-page="1" data-toggle="tab">Ce week end </a></li>              
        </ul>
        </div>
        <!-- End Filtre rapide -->
        </div><div id="bloc_page"></div>
        <!-- End Filtre rapide -->
et mon code pour le système de date:
// JavaScript Document
// On donne une action dès qu'on clique sur un lien des nav
$(document).ready(function(){
    $('.filter-tabs a, .page:not(.active)').on('click', function(e) {
				
        e.preventDefault(); // On annule le fait d'avoir cliqué sur le lien.
        var du = $(this).attr('data-du');
        var au = $(this).attr('data-au');
        var page = $(this).attr('data-page');
        chargerDonnees(du, au, page);
	});
});
// On déclare la fonction qui va aller chercher les données en base de données selon le bouton cliqué
function chargerDonnees(du, au, page) {
	
	var dep = $('#departement').val();
	var region = $('#departement').attr('data-region');
	var loisir = $('#loisir').val();
	var vil = $('#ville').val();
	var datetimepicker2 = $('#datetimepicker2').val();
	
    $.ajax({
        type: 'POST',
        url: 'list.php',
        data: 'du='+du+'&au='+au+'&page='+page+'&departement='+dep+'&region='+region+'&loisir='+loisir+'&ville='+vil+'&date='+datetimepicker2,
        processData: true,
        async: false,
		

        
    });
}
Alors Oui jai bien vérifié le script est bien importé....
Merci à vous

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

19 juil. 2016, 09:26

Modération :
Afin d'éviter le multipostage et simplifier l'apport de réponse qui peuvent être faites, ce sujet a été verrouillé.

Des réponses peuvent être apportées à cette adresse :
php-debutant/filtrer-une-requete-avec-d ... 76567.html .
Il en faut peu pour être heureux ......