Formulaire action = redirection selon variable
Posté : 04 déc. 2015, 22:33
Salut à tous.
Je vous expose le problème.
J'ai un formulaire qui marche très bien à ce jour.
Le hic est que actuellement le traitement ce fait toujours sur la meme page ( vu le formulaire c'est normal ).
actuellement le formulaire se traite sur la page sortie.php
J'aimerais qu'il soit redirigé sur l'url qui correspond au département
si une ville est renseigné redirigé sur une url avec la ville
...
Le formulaire en lui même:
Partie rechercheajax.php ( les requetes )
Je vous expose le problème.
J'ai un formulaire qui marche très bien à ce jour.
Le hic est que actuellement le traitement ce fait toujours sur la meme page ( vu le formulaire c'est normal ).
actuellement le formulaire se traite sur la page sortie.php
J'aimerais qu'il soit redirigé sur l'url qui correspond au département
si une ville est renseigné redirigé sur une url avec la ville
...
Le formulaire en lui même:
<form id="choice" name="liste deroulante" method="post" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
<div class="col-md-12">
<input class="form-control" placeholder="code postal, ville, nom" name="requete" id="requete" 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 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>
Partie rechercheajax.php ( les requetes )
if(!empty($_REQUEST['datetimepicker'])) {
$date = DateTime::createFromFormat('d/m/Y', $_REQUEST['datetimepicker']);
$du = $au = $date->format('Y-m-d');
}
// On récupere le jour de la semaine en fonction de la date
$jourRecherche = date('N', strtotime($du));
$_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;
// Recherche par date
if(!empty($du)) {
}
$sql .= !empty($du) && !empty($au) ? " AND (DATE_FORMAT(`loisirs`.`date_debut_sortie`, '%Y-%m-%d') <= '".$du."' AND DATE_FORMAT(`loisirs`.`date_fin_sortie`, '%Y-%m-%d') >= '".$au."')" : NULL;
// Fin de la recherche par date
// moteur de recherche
if(isset($_POST['requete']) && $_POST['requete'] != NULL) // on vérifie d'abord l'existence du POST et aussi si la requete n'est pas vide.
{
$requete = htmlspecialchars($_POST['requete']);
$sql = "SELECT * FROM loisirs WHERE titre LIKE '%$requete%' OR city LIKE '%$requete%' OR postcode LIKE '%$requete%' ";
// Moteur de recherche
}
//fin du moteur de recherche
$req = $bdd->query($sql);
Et enfin le JS au complet// 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 req = $('#requete').val();
var loisir = $('#loisir').val();
var datetimepicker2 = $('#datetimepicker2').val();
$.ajax({
type: 'POST',
url: 'include/rechercheAjax.php',
data: 'du='+du+'&au='+au+'&page='+page+'&departement='+dep+'®ion='+region+'&requete='+req+'&loisir='+loisir+'&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);
});
}
});
}
htaccess.
#--------------------------------------------------
# Répertoire : /
#--------------------------------------------------
# Activation du module de réécriture d'URL
Options +FollowSymLinks
Options -MultiViews
RewriteEngine On
RewriteRule ([a-zA-Z0-9\-]+)/([0-9]+) annonce_zoom.php?url=$1&id=$2
#--------------------------------------------------
# R�gles de réécriture d'URL :
#--------------------------------------------------
# Recherche
RewriteCond %{QUERY_STRING} ^q=
RewriteRule ^(index\.php)?$ recherche.php [L]
RewriteRule ^toutes-les-sorties-en-region-([A-Za-z0-9_-]+)-du-departement-([0-9]{2}).html$ sortie.php?region=$1&departement=$2
RewriteRule ^toutes-les-sorties-en-region-([A-Za-z0-9_-]+).html$ sortie.php?region=$1
RewriteRule ^toutes-les-sorties.html sortie.php
#RewriteRule ^([A-Za-z0-9_-]+).html$ $1.php