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 !

1 réponse


Peux-tu modifier to post et encadrer le code (3 x altgr7 avant le code et 3 x algr7 après)