IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Zone liste déroulante


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Décembre 2013
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 356
    Par défaut Zone liste déroulante
    onjour à toutes et à tous,

    Grand débutant je me lance dans le grand bain.

    Je voudrais faire un site php à usage personnel pour divers calculs et données.

    Première étape : faire une page avec une liste déroulante qui reprend des infos d'une table mysql (ça c'est fait)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?php
    require_once 'pdoconfig.php';
     
    //On se connecte
       try{
        $liste = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
       }
     
    catch(PDOException $e){
          echo "Erreur : " . $e->getMessage();
    }
     
    ?>
     
    <!--On affiche la liste déroulante--> 
     
        <label for="bot-select">Bot : </label>
        <select name="bot" id="bot-select" required>
     
    <?php 
    $reponseliste = $liste->query('select nom_bots from nom_bots');
     
    while ($donneesliste = $reponseliste->fetch())
    {
    ?>
            <option value="<?php echo $donneesliste['nom_bots']; ?>"><?php echo $donneesliste['nom_bots']; ?></option>
     
    <?php
            } 
    ?>
        </select>
    Ensuite, je voudrais que lorsque je clique sur un nom dans cette liste, s'affiche d'autres données qui sont en relation avec ce nom sélectionné.

    J'ai cherché un peu partout sur le net, j'ai pas dû indiquer les bons mots clés parce que je ne trouve rien que je puisse appliquer ou comprendre.

    Merci d'avance pour vos pistes et aides.

    Bonne journée

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 554
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 554
    Par défaut
    la 1re étape est de filtrer les résultats à partir d'un paramètre de l'URL. par exemple liste.php?filtre_id=25.
    vous pouvez récupérer cet élément dans $_GET["filtre_id"] et ensuite vous passez cette valeur à une requête préparée :
    https://www.php.net/manual/fr/pdo.prepare.php

  3. #3
    Membre éclairé
    Inscrit en
    Décembre 2013
    Messages
    356
    Détails du profil
    Informations forums :
    Inscription : Décembre 2013
    Messages : 356
    Par défaut
    Merci pour votre réponse.

    Voici ce que j'ai fait en trouvant quelques infos et code sur le forum et sur le net.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
     <!DOCTYPE html>
     <html>
     
     <head>
         <meta charset="utf-8" />
         <title>Recherche</title>
     </head>
     
     <body>
         <?php include('pdoconfig.php');
     
    //On se connecte
     
       try{
        $liste = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
       }
     
    catch(PDOException $e){
          echo "Erreur : " . $e->getMessage();
    }
     
    ?>
     
     
         <!--On affiche la liste déroulante-->
     
         <form method='post'>
     
     
             <select name="recherche_valeur" id="bot-select" required>
     
                 <?php 
    $reponseliste = $liste->query('select nom_bots from nom_bots');
     
    while ($donneesliste = $reponseliste->fetch())
    {
    ?>
                 <option value="<?php echo $donneesliste['nom_bots']; ?>"><?php echo $donneesliste['nom_bots']; ?></option>
     
                 <?php
            } 
    ?>
             </select>
     
             <input type='submit' value="Rechercher" />
         </form>
     
     
     
         <!--On affiche le résultat de la recherche-->
     
         <table>
             <thead>
                 <tr>
                     <th>Bots</th>
                 </tr>
             </thead>
             <tbody>
                 <?php
    				$sql='select nom_bots from nom_bots';
    				$params=[];
    				if(isset($_POST['recherche_valeur'])){
    					$sql.=' where nom_bots like :nom_bots';
    					$params[':nom_bots']="%".addcslashes($_POST['recherche_valeur'],'_')."%";
    				}
    				$resultats=$liste->prepare($sql);
    				$resultats->execute($params);
    				if($resultats->rowCount()>0){
    					while($d=$resultats->fetch(PDO::FETCH_ASSOC)){
    					?>
                 <tr>
                     <td><?=$d['nom_bots']?></td>
                 </tr>
                 <?php
    					}
    					$resultats->closeCursor();
    				}
    				else echo '<tr><td colspan=4>aucun résultat trouvé</td></tr>'.
    				$connect=null;
    			?>
             </tbody>
         </table>
     
     </body>
     
     </html>
    Et le résultat (regardez pas la mise en page : merci )

    https://wagstd.laptopdiscountexport.site/search_1.php

    Ca fonctionne mais ...

    Comment faire pour que :

    1 - Le nom sélectionné reste affiché dans la liste déroulante (actuellement, il affiche le premier de la liste)
    2 - Au chargement de la page, toute la liste est affichée. Est il possible de ne rien affiché ?
    3 - Se passer du bouton rechercher et que l'affichage des données se fasse dès que l'utilisateur a sélectionné un nom dans la liste déroulante.

    Merci d'avance pour vos avis et aides.

    Bonne journée.

Discussions similaires

  1. Largeur affichage zone liste déroulante
    Par CyberMen dans le forum VBA Access
    Réponses: 4
    Dernier message: 21/11/2008, 13h02
  2. zone liste déroulante infopath datasource
    Par ahmedmido dans le forum SharePoint
    Réponses: 0
    Dernier message: 07/04/2008, 18h15
  3. zone liste déroulante
    Par imeys dans le forum IHM
    Réponses: 4
    Dernier message: 19/09/2007, 19h02
  4. Réponses: 5
    Dernier message: 11/04/2007, 09h20
  5. [VB.NET].saisie progressive dans zone liste déroulante
    Par LE VIEUX dans le forum Windows Forms
    Réponses: 10
    Dernier message: 27/09/2006, 13h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo