J'ai besoin d'ajouter à mon tableau une sorte de fonction de recherche. Je m'explique : ce tableau contient des villes remplies grâce à ma base de données. Le nombre varie toujours, il peut y en avoir 4 comme 50. Pour que le client trouve rapidement sa ville, je voulais créer un "moteur de recherche" dans 1 champs de ce tableau (le nom des villes). Or, je n'ai rien trouvé. (Si vous avez un lien je suis preneur !!)
Je vais donc me contenter d'une liste déroulante contenant les villes, qui, une fois la ville selectionnée, renvoie à la ligne correspondante du tableau. Des anres donc.
Cependant, j'ai un soucis. Je n'arrive pas à le mettre en place... Voici mon code actuel :
<table class="tabletournee">
<caption>Dates et lieux de la tournée 2017</caption>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=medrano2017;charset=utf8', 'root', '');
$bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(Exception $e)
{
die('Erreur : '.$e->getMessage());
}
$reponse = $bdd->query('SELECT * FROM evenement');
?>
<tr class="rechercheville">
<td colspan="4">
<form class="recherchevilletournee">
<select>
<?php
while ($donnees = $reponse->fetch())
{
?>
<option><?php echo ''.$donnees['ville_event'].'';?></option>
<?php
}
?>
</select>
<a href="#event<?php echo $donnees['id_event']?>" class="lienresa">VALIDER</a>
</form>
</td>
</tr>
<?php
$reponse = $bdd->query('SELECT id_event,
id_tournee,
evenement.ville_event AS ville,
evenement.lien_resa_event AS lienresa,
evenement.adresse_event AS adresse,
tournee.description_tournee AS descriptiontournee,
tournee.nom_tournee AS nomtournee,
(SELECT MIN(s.dateheure_seance) FROM seance s WHERE s.id_event = evenement.id_event) AS premiereSeance,
(SELECT MAX(s.dateheure_seance) FROM seance s WHERE s.id_event = evenement.id_event) AS derniereSeance
FROM tournee
JOIN evenement USING(id_tournee)
ORDER BY premiereSeance,derniereSeance');
$compteur =0;
$datecourante = date('Y-m-d H:i:s');
while ($donnees = $reponse->fetch())
{
setlocale(LC_ALL, 'French', 'fr-FR.utf8','fra', 'fr-FR', 'fr_FR', 'fr', 'fr_FR@euro');
$datedebut = strftime("%d %B", strtotime($donnees['premiereSeance']));
$datefin = strftime("%d %B %Y", strtotime($donnees['derniereSeance']));
if( $donnees['derniereSeance'] >= $datecourante )
{
?>
<tr class="infotournee infotournee<?php echo ($compteur%2); $compteur++; ?>">
<td id="event<?php echo $donnees['id_event']; ?>"><p style="color:white;" class="villetournee"><?php echo ''.$donnees['ville'].'';?></p> <p class="nomtournee"><?php echo ''.$donnees['nomtournee'].'';?></p></td>
<td><?php echo (strpos($datedebut,' '.$datefin))? 'Le '.utf8_encode($datedebut) : 'Du '.utf8_encode($datedebut).'<br/>au '.utf8_encode($datefin); ?></td>
<td><?php echo ''.$donnees['adresse'].'';?></td>
<td><a href="#" class="lienresa">PLUS D'INFOS</a><a class="lienresa" href="#">RESERVER</a></td>
</tr>
<?php
}
}
$reponse->closeCursor();
?>
</table>
J'ai essayé comme vous pouvez le voir de mettre un href="#event<?php echo $donnees['id_event']?>" puis un id="event<?php echo $donnees['id_event']; ?>" mais sans succés, lorsque je séléctionne la ville puis clique sur le bouton "valider", dans l'url j'ai uniquement #event...
Voici ma page actuelle pour plus de clareté :
Heberger image
Si vous avez une idée, elle est la bienvenue, et merci à tous d'avance !