url rewriting
Posté : 06 mars 2016, 21:51
Salut à tous.
Bon j'ai changé un peu le tt pour que ca soit plus simple
Donc tt marche maintenant je cherche juste à corriger mes urls pour qu'elle soit plus jolies.
Actuellement mes urls ressemble à :
http://monsite.fr/sortie.php?ville=gren ... imepicker=
Je cherche à avoir :
http://monsite.fr/sortie.php/grenoble/10/ par exemple:
Mon code:
formulaire de recherche:
Js:
// 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: 'GET',
url: 'include/rechercheAjax.php',
data: 'du='+du+'&au='+au+'&page='+page+'&departement='+dep+'®ion='+region+'&loisir='+loisir+'&ville='+vil+'&date='+datetimepicker2,
processData: true,
async: false,
beforeSend: function() {
$('#bloc_page').html('Chargement en cours');
},
success: function (data) {
$('#bloc_page').html(data);
// On doit le rappeller car un nouveau bloc pagination a été créé
$('.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);
});
}
});
}
et les requetes:
Bon j'ai changé un peu le tt pour que ca soit plus simple
Donc tt marche maintenant je cherche juste à corriger mes urls pour qu'elle soit plus jolies.
Actuellement mes urls ressemble à :
http://monsite.fr/sortie.php?ville=gren ... imepicker=
Je cherche à avoir :
http://monsite.fr/sortie.php/grenoble/10/ par exemple:
Mon code:
formulaire de recherche:
<form title="Formulaire de recherche sortie" id="choice" name="liste deroulante" method="GET" action="/sortie.php">
<div class="col-md-12 col-sm-12 max">
<input title="Recherche par ville" class="form-control" placeholder="Recherche par ville" value="<?php echo !empty($_REQUEST['ville']) ? $_REQUEST['ville'] : NULL;?>" name="ville" id="ville" type="search">
</div>
<div class="col-md-3 col-sm-3 max">
<?php // Gestion des variables des départements
$region = !empty($_SESSION['membre']['id_region']) ? simplification($aRegion[$_SESSION['membre']['id_region']]) :NULL;
$region = !empty($_REQUEST['region']) ? $_REQUEST['region'] : $region; /* Si la region est renseigné dans l'url il est prioritaire */
$departement = !empty($_SESSION['membre']['id_departements']) ? $_SESSION['membre']['id_departements'] : NULL;
$departement = !empty($_REQUEST['departement']) ? $_REQUEST['departement'] : $departement; /* Si le departemebt est renseigné dans l'url il est prioritaire */
?>
<select title="choisir un département" name="departement" id="departement" class="selectpicker max" data-region="<?php echo $region; ?>">
<option value="">Votre département</option>
<?php echo aRegionDepartement($region, $departement); ?>
</select>
</div>
<div class="col-md-3 col-sm-3 max">
<select title="choisir une sortie" name="loisir" id="loisir" class="selectpicker max">
<option value=""> Toutes les sorties</option>
<?php
asort($aLoisirs);
foreach($aLoisirs as $k => $v) {
$selected = !empty($_REQUEST['loisir']) && ($_REQUEST['loisir'] == $k) ? ' selected="selected"' : NULL;
echo '<option value="'.$k.'"'.$selected.'>'.$v.'</option>'."\n";
}
?>
</select>
<?php echo !empty($region) ? '<input type="hidden" name="region" value="'.$region.'" />' : NULL; ?>
</div>
<div class="col-md-3 col-sm-3 max">
<div class="input-group input-group">
<span class="input-group-addon"><i class="fa fa-calendar-o"></i></span>
<input title="Recherche de sortie par date "id="datetimepicker2" name="datetimepicker" placeholder="Recherche par date" type="text" readonly value="<?php echo !empty($_REQUEST['datetimepicker']) ? $_REQUEST['datetimepicker'] : NULL; ?>">
</div>
</div>
<div class="col-md-3 col-sm-3 max">
<input type="button" autofocus id="btn_select" class="find" onclick="javascript:submit();" onFocus="this.blur();" value="Rechercher">
</div>
</form>
Js:
// 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: 'GET',
url: 'include/rechercheAjax.php',
data: 'du='+du+'&au='+au+'&page='+page+'&departement='+dep+'®ion='+region+'&loisir='+loisir+'&ville='+vil+'&date='+datetimepicker2,
processData: true,
async: false,
beforeSend: function() {
$('#bloc_page').html('Chargement en cours');
},
success: function (data) {
$('#bloc_page').html(data);
// On doit le rappeller car un nouveau bloc pagination a été créé
$('.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);
});
}
});
}
et les requetes:
$_REQUEST['departement'] = !empty($_REQUEST['departement']) ? $_REQUEST['departement'] : NULL;
$_REQUEST['departement'] = !empty($_SESSION['membre']) && empty($_REQUEST['departement']) && empty($_REQUEST['region']) ? $_SESSION['membre']['id_departements'] :$_REQUEST['departement'];
$sql = "SELECT * FROM `loisirs` JOIN `regions` ON `regions`.`region_id` = `loisirs`.`id_region` WHERE `loisirs`.`date_fin_sortie` > NOW() AND `loisirs`.`valide` = 1";
$sql .= !empty($_REQUEST['region']) ? ' AND `regions`.`url` = "'.$_REQUEST['region'].'"' : NULL;
$sql .= !empty($_REQUEST['departement']) ? ' AND `loisirs`.`id_departements` = '.$_REQUEST['departement'] : NULL;
$sql .= !empty($_REQUEST['loisir']) ? ' AND `loisirs`.`id_type_loisirs` = "'.$_REQUEST['loisir'].'"' : NULL;