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 :

Affichage tableau en fonction d'une liste déroulante


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Affichage tableau en fonction d'une liste déroulante
    Bonjour,

    Je souhaiterais afficher des données dans mon tableau en fonction du nom choisit dans la liste déroulante, j'ai essayé tout simplement dans ma requete avec "where" mais ça ne marche pas.
    Comment puis je faire?
    Merci de votre aide, voici mon code :
    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
    <?php 
    $connexion = mysql_connect("localhost","root",""); 
    if ($connexion) 
    { 
    mysql_select_db("voyage",$connexion); 
     
     
    ?> 
    Veuillez sélectionner le nom d'un salarié : <select> 
    <Option value="-1">-- Nom --</Option> 
    <?php 
     
    //on se connecte à MySQL 
    $db = mysql_connect('localhost', 'root', '') ; 
     
    //on sélectionne la base 
    mysql_select_db('Intranet',$db) ; 
     
    $sql3 = "SELECT distinct Nom FROM personnel"; 
    //on envoie la requête 
    $req3 = mysql_query($sql3) or die(mysql_error()); 
     
    //on fait une boucle qui va faire un tour pour chaque enregistrement 
    while($data3 = mysql_fetch_assoc($req3)) 
     
    //on affiche les informations de l'enregistrement en cours 
    { 
    echo "<option value>" .$data3['Nom']. "</option>"; 
     
    } 
    //on ferme la connexion à mysql 
    mysql_close(); 
    } 
    ?>	
    </select> 
    <br><br><br> 
     
    </form> 
     
    <form> 
     
     
    <table border bodercolordark="black" align = "center" cellpadding="10"><tr> 
    <th>Date Demande</th> 
    <th>Objet mission</th> 
    <th>Nom</th> 
    <th>Type transport</th> 
    <th>Réduction en %</th> 
    <th>Ville de départ</th> 
    <th>Ville d'arrivée</th> 
    <th>Date de départ</th> 
    <th>Heure de départ</th> 
    <th>Date de retour</th> 
    <th>Heure de retour</th> 
    <th>Demande d'hotel ?</th> 
    <th>Nom de l'hotel n°1</th> 
    <th>Nom de l'hotel n°2</th> 
    <th>Nom de l'hotel n°3</th> 
    <th>Type de chambre</th> 
    <th>Fumeur ?</th> 
    <th>Arrivée après 18H ?</th> 
    <th>Nombre de nuits</th> 
    </tr> 
    <?php 
    $connexion = mysql_connect("localhost","root",""); 
    Mysql_select_db("Intranet",$connexion); 
     
    //$sql_affichage = mysql_query('SELECT * FROM voyage where Nom = "'.$data3["Nom"].'"'); 
    $sql_affichage = mysql_query('SELECT * FROM voyage'); 
    while ($donnees = mysql_fetch_array($sql_affichage)) 
    { 
    ?> 
    <tr> 
    <td> 
    <?php echo $donnees['Date_demande']; ?> 
    </td><td> 
    <?php echo $donnees['Objet_mission']; ?> 
    </td><td> 
    <?php echo $donnees['Nom']; ?> 
    </td><td> 
    <?php echo $donnees['Type_transport']; ?> 
    </td><td> 
    <?php echo $donnees['Reduction']; ?> 
    </td><td> 
    <?php echo $donnees['Ville_depart']; ?> 
    </td><td> 
    <?php echo $donnees['Ville_arrivee']; ?> 
    </td><td> 
    <?php echo $donnees['Date_depart']; ?> 
    </td><td> 
    <?php echo $donnees['Heure_depart']; ?> 
    </td><td> 
    <?php echo $donnees['Date_retour']; ?> 
    </td><td> 
    <?php echo $donnees['Heure_retour']; ?> 
    </td><td> 
    <?php echo $donnees['Hotel_oui_non']; ?> 
    </td><td> 
    <?php echo $donnees['Nom_hotel1']; ?> 
    </td><td> 
    <?php echo $donnees['Nom_hotel2']; ?> 
    </td><td> 
    <?php echo $donnees['Nom_hotel3']; ?> 
    </td><td> 
    <?php echo $donnees['type_chambre']; ?> 
    </td><td> 
    <?php echo $donnees['Fumeur_oui_non']; ?> 
    </td><td> 
    <?php echo $donnees['Arriver_ap_18h']; ?> 
    </td><td> 
    <?php echo $donnees['Nb_nuit']; ?> 
    </td> 
    </tr> 
     
    <?php 
    } 
    ?> 
     
    </table> 
    <tr> 
    </form>

  2. #2
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Bonjour,

    Je suppose que tu voudrais que si jamais on change la valeur du select, alors il affiche les valeurs correspondantes, non ? et le tout sans recharger ta page ...
    Si c'est bien ça, l'utilisation de PHP pur n'est pas possible, il faut faire appel à AJAX : tu appelle, grâce à JavaScript, à chaque modification de la valeur du select une page PHP qui fera une requête en fonction de ce nom, qui renverra le résultat à JS, qui lui affichera les données.

    Bonne journée.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6
    Points : 5
    Points
    5
    Par défaut Aïe
    Oula ça me parait vraiment compliqué je suis débutante :s

  4. #4
    Membre actif
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2008
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2008
    Messages : 185
    Points : 225
    Points
    225
    Par défaut
    Mais non, c'est pas compliqué.

    En gros :
    Le client demande la page qui contient le select
    Dès qu'il change la valeur du select en déroulant le menu :
    Javascript envoie une requête à une page PHP en lui donnant en paramètre la ligne sélectionnée
    La page PHP renvoie les informations associées à l'enregistrement sélectionne
    Javascript reçoit la réponse et affiche les données

    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
     
    function createXhrObject()
    {
        if (window.XMLHttpRequest)
            return new XMLHttpRequest();
     
        if (window.ActiveXObject)
        {
            var names = [
                "Msxml2.XMLHTTP.6.0",
                "Msxml2.XMLHTTP.3.0",
                "Msxml2.XMLHTTP",
                "Microsoft.XMLHTTP"
            ];
            for(var i in names)
            {
                try{ return new ActiveXObject(names[i]); }
                catch(e){}
            }
        }
        window.alert("Votre navigateur ne prend pas en charge l'objet XMLHTTPRequest.");
        return null; // non supporté
    }
     
    _xmlHttpxhr = createXhrObject(); //On crée un objet XMLHttp
    url = "http://"; //l'url à apeller
    //La fonction réalisant l'appel distant
    function call( id ){
      if( _xmlHttp&&_xmlHttp.readyState!=0)
        _xmlHttp.abort(); //Si il est en train de faire un requête, on lui dit d'arrêter
      if(_xmlHttp){ //Si l'objet XMLHttp est bien un objet
        _xmlHttp.open( "GET", url + "?id=" + id, true ); //On lui dit l'url à appeler, et comment le faire ( en GET )
        _xmlHttp.onreadystatechange=function() { //Quand il a reçu la réponse, il effectue le contenu de cette fonction anonyme 
          if( _xmlHttp.readyState==4){ //Si il a bien fini de recevoir la réponse 
            afficher( _xmlHttp.responseText ); //il appelle l'affichage
          }
        }
        _xmlHttp.setRequestHeader( 'Content-Type', 'x-www-form-urlencoded'); //Un header
        _xmlHttp.send( null ); //On envoie la requête
      }
    }
     
    function modif( what ){ //what sera le select en lui même, donc on recupère la valeur du value de la ligne courante
      if( what.options[what.selectedIndex].value == -1 ) //si on est pas sur la ligne 'choisissez'
        return call( what.options[what.selectedIndex].value ); //On appelle le serveur pour avoir les informations
    }
     
    function afficher( texte ){
      //Ici tu traite la chaine que tu reçoit
      texte = texte.split( '§' );
      alert( texte );
    }
    Le code PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php
     
    $id = $_GET[ 'id' ];
    //connection à la DB
    ...
     
    $sql_affichage = mysql_query('SELECT * FROM voyage where id = \''.mysql_real_escape_string( $id ). "'" ); //Il faut les ' autour de la valeur, pas des ", sinon tu aura une erreur de mySQL
    $table = mysql_fetch_assoc( $sql_affichage );
    echo implode( '§', $sql_affichage );
    ?>
    Et sur le select en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select onchange="javascript:modif( this );">
    Et pour créer tes option tu fait des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value=' . $data3[ 'id' ] . '>' . $data3[ 'Nom' ] . '</option>'
    Bien sur, j'espère que tu as un champ id, numérique dans ta table ^^' c'est bien plus propre que de passer les noms
    Déjà si tout ça marche ^^".

    J'espère que tu n'est pas perdue dans ce que je viens d'écrire

Discussions similaires

  1. Affichage image en fonction d'une liste déroulante
    Par watcha2008 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 10/04/2013, 09h17
  2. Réponses: 2
    Dernier message: 06/11/2012, 11h44
  3. Réponses: 4
    Dernier message: 08/12/2009, 17h12
  4. Réponses: 2
    Dernier message: 29/06/2007, 11h20
  5. Comment rappeler une fonction dans une liste déroulante
    Par strogos dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 05/05/2005, 23h54

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