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 :

Liste deroulante PHP et MySQL


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut Liste deroulante PHP et MySQL
    Bonjour,
    Bonjour, je dois faire une page surlaquelle on accède à un formulaire (un champs) à compléter, ensuite on doit pouvoir afficher les dates correspondantes (à ce champs) dans un menu (elles sont dans une BDD).
    J'ai donc créer le formulaire, la connexion au serveur MySQL fonctionne (je vous mets uniquement la partie PHP, il manque juste la creation du formulaire HTML surlequel on tape le numbers) :
    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
    <?php
    // On récupère les valeurs de nos variables :
    $numbers = $_POST['numbers'];
    ?>
    <?php
    $recherche = mysql_query("SELECT date FROM ntable WHERE numbers='$numbers'" ) ;
    $result = mysql_query($recherche) ?>
     
    <p> Date: <select size="1" name="date">
     
    <?php
    while ($row=mysql_fetch_array($result))
    {
    ?>
    <OPTION><?php echo $row['date']; ?></OPTION>
    <?php
    }
    --> Ce code fonctionne, j'ai bien les dates proposés dans la liste.
    Maintenant, je voudrais afficher d'autre champs de ma BDD en fonction de la date choisie. Je dois donc récupérer la date dans un 1er temps, je propose le code suivant (j'ai déjà renseigner les paramètres form (post ...) au début du formulaire).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <p>
    <INPUT type="submit" value="Envoyer">
    </p>
     
    <?
    $date=$_POST['date'];  
    ?>
    <p> Date <? echo $date; ?> </p>
    <?
    Merci

  2. #2
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    personne ne peut m'aider ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Je reformule le problème :
    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
     
    <FORM method=post action="site.php">
    <h3><u>Choisir la réference afin d'afficher les dates des tests réalisés : :</u></h3>
    <TABLE BORDER=5>
    <TR>
    	<TD>Entrez la réference</TD>
    	<TD>
    	<INPUT type=int name="reference">
    	</TD>
    </TR>
     
    <TR>
    	<TD COLSPAN=2>
    	<INPUT type="submit" value="Envoyer">
    	</TD>
    </TR>
    </TABLE>
    </FORM>
     
    <?php
    // Connexion à la BDD :
    $db = mysql_connect('127.0.0.1', 'root', '1234');  // 1
    mysql_select_db('bdd',$db); 
    ?>
     
    <?php
    // On récupère la valeur de la reference :
    $reference = $_POST['reference'];
    ?>
     
    <?php
    // On lance la requete SQL suivante afin d'afficher les dates correspondantes dans une liste déroulante aux tests réalisés :
    $recherche = "SELECT date FROM tableref WHERE reference='$reference'";
    $result = mysql_query($recherche) ?>
     Date: <select size="1" name="date">
     
    <?php
    // On affiche les dates dans une liste déroulante :
    while ($row=mysql_fetch_array($result))
    {
    ?>
    <OPTION><?php echo $row['date']; ?></OPTION>
    <?php
    }
    ?>
     
    <?
    $date=$_post['date']; 
    ?>
    <? echo $date; ?> 
     
     
    <?
    // On ferme la BDD :
    mysql_close($db); 
    ?>
    Tout fonctionne jusqu'à la ligne 46 (j'ai bien les dates correspondantes au champs reference dans une liste déroulante).
    Je voudrais cependant extraire la date choisie pour exécuter une autre requête sql. Le problème est que je n'arrive pas à l'extraire (j'ai penser au bouton envoyer mais ça ne marche pas).
    Merci beaucoup !!!

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    j'ai essayer ça mais ca me donne rien (dans la liste j'ai qu'une ligne ou sont affichés toutes la dates, la condition sql est cependant respectée).
    Je voudrais que les dates soient affichés sur plusieurs ligne et pouvoir récupérer la date sélectionnée.
    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
        // On récupère les valeurs de nos variables :
        $dut_serialnumber = $_POST['dut_serialnumber'];
        ?>
        <?php
        $recherche = ("SELECT date_start FROM dut_test_data WHERE dut_serialnumber='$dut_serialnumber'" ) ;
        $result = mysql_query($recherche) ?>
        <FORM method=post action="site2.php">
        Date: <select size="1" name="date_start" >
        <OPTION><?php
        while ($row=mysql_fetch_array($result))
        {
        echo $row['date_start'];} ?>
        </OPTION>
        </select>
        <INPUT type="submit" value="Envoyer2">
        </FORM>
    Merci beaucoup de votre aide !!!

  5. #5
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bonsoir,

    Tu as une erreur de syntaxe les <option></option> sont mal positionnés : essaies avec ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php 
    while($row = mysql_fetch_array($result)) {
       echo '<option>', $row['date_start'], '</option>';
    }
    ?>

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Oui merci c'est ça.
    Lorsque je demande le 1er champs (serial_numbers) et j'appuie sur envoyer j'ai bien la date correspondante dans la liste.
    Je veux sélectionner la date et appuyer sur envoyer(2eme bouton), mais j'ai une erreur comme quoi la valeur serial_number n'est pas entré (elle n'est plus affiché après l'appuie sur le 1er envoie).
    Merci de votre aide..

  7. #7
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par SNY77 Voir le message
    OJe veux sélectionner la date et appuyer sur envoyer(2eme bouton), mais j'ai une erreur comme quoi la valeur serial_number n'est pas entré (elle n'est plus affiché après l'appuie sur le 1er envoie).
    C'est normal, lors de la première soumission il te faut renvoyer le 2ème formulaire avec un champ <input type="hidden" name="dut_serialnumber" value="$dut_serialnumber" /> contenant la valeur $_POST['dut_serialnumber'] récupéré lors de la première soumission

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Merci, mais j'ai pas très bien compris, je dois les mettre où les commandes que tu a rajouter ?
    Merci beaucoup !!!

  9. #9
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    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
    // On récupère les valeurs de nos variables :
        $dut_serialnumber = $_POST['dut_serialnumber'];
        ?>
        <?php
        $recherche = ("SELECT date_start FROM dut_test_data WHERE dut_serialnumber='$dut_serialnumber'" ) ;
        $result = mysql_query($recherche) ?>
        <FORM method=post action="site2.php">
        <input type="hidden" name="dut_serialnumber" value="<?php echo $dut_serialnumber; ?>" />
        Date: <select size="1" name="date_start" >
        <OPTION><?php
        while ($row=mysql_fetch_array($result))
        {
        echo $row['date_start'];} ?>
        </OPTION>
        </select>
        <INPUT type="submit" value="Envoyer2">
        </FORM>

  10. #10
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Lorsque je clique sur le 2ème bouton Envoyer, j'ai toujours une erreur comme quoi je n'ai pas renseigné le champs serial_number !
    Merci.
    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
    <?php
    $dut_serialnumber = $_POST['dut_serialnumber'];
        ?>
        <?php
        $recherche = ("SELECT date_start FROM dut_test_data WHERE dut_serialnumber='$dut_serialnumber'" ) ;
        $result = mysql_query($recherche) ?>
        <FORM method=post action="site2.php">
        <input type="hidden" name="dut_serialnumber" value="<?php echo $dut_serialnumber; ?>" />
        Date: <select size="1" name="date_start" >
        <OPTION><?php
        while ($row=mysql_fetch_array($result))
        {
        echo $row['date_start'];} ?>
        </OPTION>
        </select>
        <INPUT type="submit" value="Envoyer2">
    </FORM>

    <? echo $_GET['date_start']; ?>
    ps : on m'a dit qu'il est mieux de rajouter les balises options dans la boucle WHILE;

  11. #11
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Bah, il faut garder le code source de ta page histoire de voir la valeur du <input type="hidden" />

  12. #12
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    j'ai pas compris

  13. #13
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    La page que tu vois dans le navigateur est basé sur un code source. Pour le voir, il te suffit de cliquer droit sur la page et sélectionner dans le menu déroulant quelque chose comme "Afficher la source", "Source"...
    Copie toute le code et postes le.

  14. #14
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    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
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <link rel="stylesheet" href="site1.css" />
            <title>Demonstration N�2</title>
        </head>
     
        <body>
            <h1 style="border-width:12px; border-color:grey; border-style:inset; padding:5px;">
     
    <center><b>Exploitation de la base de donnees TX_RACK</b></center></h1>
     
    <FORM method=post action="site2.php">
    <h3><u>Choisir le dut_serial_number afin d'afficher les dates des tests r�alis�s : :</u></h3>
    <TABLE BORDER=5>
    <TR>
    	<TD>Entrez le dut_serialnumber</TD>
    	<TD>
    	<INPUT type=int name="dut_serialnumber">
    	</TD>
     
    </TR>
     
    <TR>
    	<TD COLSPAN=2>
    	<INPUT type="submit" value="Envoyer">
    	</TD>
    </TR>
    </TABLE>
    </FORM>
     
     
    <FORM method=post action="site2.php">
     Date: <select size="1" name="date_start">
     
    <OPTION>2011-07-07 13:31:00</OPTION>
    <OPTION>2011-07-07 15:25:02</OPTION>
    <OPTION>2011-07-07 17:31:31</OPTION>
     
     
     
    <INPUT type="submit" value="Envoyer2">
    </FORM>
     
     
    <?
    $date_start=$_post['date_start']; 
    ?>
    <? echo $date_start; ?> 
    <?
    $recherche2 = "SELECT test_name, test_description, test_frequency, test_octopack_slot, test_octopack_channel, 
    test_phase, test_value, test_limitlow, test_limithigh, test_result, test_unit FROM dut_test_data d";
    $result2 = mysql_query($recherche2)
     
     
     
    // On ferme la BDD :
    mysql_close($db); 
    ?> 
     
     
    </body>
    </html>
    J'ai mis le code source après avoir taper la valeur du serial number, j'ai donc bien les dates des tests réalisés.

  15. #15
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Je te conseille de lire d'abord ceci : tutoriel pour grand-débutant pressé. Sinon, tu vas finir par jeter l'éponge et moi aussi dans la foulée. Sans compter que ce fil va sacrément s'allonger.
    Je vais reprendre ton code mais prends du temps à comprendre ce qui est expliqué dans le tutorial.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Lorsque j'appuie sur le 2eme ENVOYER je n'ai plus d'erreur comme quoi il manque la valeur au 1er champs.
    Parcontre, je n'arrive pas à recuperer la date de la liste déroulante, je demande l'affichage de la variable date mais je n'ai rien ?
    Merci.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <FORM method=post action="site2d.php">
    <INPUT type="hidden" name="dut_serialnumber" value="<?php echo  $dut_serialnumber; ?>">   
    Date: <select name='date_start'  >
    <?php 
    while($row = mysql_fetch_array($result)) {
       echo '<option>', $row['date_start'], '</option>';
    }
    ?>
    </select>
    <INPUT type="submit" value="Envoyer2">
    </FORM>
    <?
    $date_start = $_POST['date_start'];
     echo $date_start; ?>

  17. #17
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    J'ai repris entièrement ton 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
    <?php
     
    // securité : échappement des caractères spéciaux
    $hsc = function ($p) { return htmlspecialchars($p, ENT_QUOTES); };
     
    $hasDut  = (isset($_POST['dut_serialnumber']) && ctype_digit($_POST['dut_serialnumber']));
    $hasDate = (isset($_POST['date_start']) && ($date = date_create($_POST['date_start'])));
     
    // par défaut on n'affiche rien
    $hideData_dates = true;
    $hideData_tests = true;
     
    $selectedDut  = null;
    $selectedDate = null;
     
    // si hasDut et hasDate -> on renvoie le formulaire et la liste des tests effectués
    // si hasDut -> on renvoie le formulaire et la liste des date disponibles
     
    if ($hasDut) {
       $selectedDut = $_POST['dut_serialnumber'];
       $sql = 'SELECT date_start FROM dut_test_data WHERE dut_serialnumber='.$_POST['dut_serialnumber'];
       $dataDates = mysql_query($sql);
       $hideData_dates = ( ! $dataDates); // au cas où la requête planterait on n'affiche pas la zone de liste
    }
     
    if (( ! $hideData_dates) && $hasDate) {
       $selectedDate = $_POST['date_start'];
    }
     
    if ($selectedDut && $selectedDate) {
       $sql = <<<SQL
    SELECT
       test_name,
       test_description,
       test_frequency,
       test_octopack_slot,
       test_octopack_channel,
       test_phase,
       test_value,
       test_limitlow,
       test_limithigh,
       test_result,
       test_unit
    FROM
       dut_test_data
    WHERE
       test_date = '$selectedDate'
    SQL;
     
       $dataTests = mysql_query($ql);
       $hideData_tests = ( ! $dataTests); // au cas où la requête planterait on n'affiche pas la table
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
       <meta charset="utf-8" />
       <link rel="stylesheet" href="site1.css" />
       <title>Demonstration N�2</title>
    </head>
    <style type="text/css">
       h1 { text-align: center; font-weight: bold; border-width: 12px; border-color: grey; border-style: inset; padding: 5px; }
       h3 { text-decoration: underline; }
       table { border: 5px; }
    </style>
     
    <body>
       <h1>Exploitation de la base de donnees TX_RACK</h1>
       <h3>Choisir le dut_serial_number afin d'afficher les dates des tests r�alis�s :</h3>
       <form method="post" action="site2.php">
          <label for="dut_serialnumber">Entrez le dut_serialnumber : </label>
          <input id="dut_serialnumber" type="number" name="dut_serialnumber" required="required" value="<?php echo $selectedDut; ?>" />
          <?php if ( ! $hideData_dates): ?>
          <label for="listeDates">Dates : </label>
          <select id="listeDates" name="date_start">
             <?php while($row = mysql_fetch_assoc($dataDates)):
                $isSelected = ($row['date_start'] === $selectedDate) ? ' selected="selected"' : null; ?>
             <option value="<?php echo $hsc($row['date_start']); ?>"<?php echo $isSelected; ?>><?php echo $hsc($row['date_start']); ?></option>
             <?php endwhile; ?>
          </select>
          <?php endif; ?>
          <input type="submit" value="Envoyer" />
       </form>
       <?php if ( ! $hideData_tests): ?>
       <table>
          <thead>
             <tr>
                <th>Name</th>
                <th>Description</th>
                <th>Frequency</th>
                <th>Slot</th>
                <th>Channel</th>
                <th>Phase</th>
                <th>Value</th>
                <th>Limit low</th>
                <th>Limit high</th>
                <th>Result</th>
                <th>Unit</th>
             </tr>
          </thead>
          <tbody>
          <?php while($row = mysql_fetch_assoc($dataTests)): ?>
             <tr>
                <td><?php echo $hsc($row['test_name']); ?></td>
                <td><?php echo $hsc($row['test_description']); ?></td>
                <td><?php echo $hsc($row['test_frequency']); ?></td>
                <td><?php echo $hsc($row['test_octopack_slot']); ?></td>
                <td><?php echo $hsc($row['test_octopack_channel']); ?></td>
                <td><?php echo $hsc($row['test_phase']); ?></td>
                <td><?php echo $hsc($row['test_value']); ?></td>
                <td><?php echo $hsc($row['test_limitlow']); ?></td>
                <td><?php echo $hsc($row['test_limithigh']); ?></td>
                <td><?php echo $hsc($row['test_result']); ?></td>
                <td><?php echo $hsc($row['test_unit']); ?></td>
             </tr>
          <?php endwhile; ?>
          </tbody>
       </table>
       <?php endif; ?>
    </body>
    </html>
    Tu verras qu'on ne fait appel qu'à un seul et unique bouton de soumission et que l'on paramètre l'affichage en fonction des paramètres reçus.
    Bref, décortiques et inspires-toi en. Penses à toujours bien séparer le le traitement PHP du rendu HTML. Dans le rendu tu ne dois quasiment pas avoir de code PHP à part des boucles et un ou deux if pour les listes.

    Comme toujours, je n'ai rien testé donc mes excuses pour une éventuelle boulette.

  18. #18
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Merci, mais maintenant je n'ai même plus la date après la saisie du serial_number !

  19. #19
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Oui j'ai fais une erreur ici : $selectedDate = $_POST['date_serial'];, il faut remplacer par $selectedDate = $_POST['date_start'];Ensuite j'ai testé mon code en le modifiant un peu :
    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
     
    // securité : echappement des caractères spéciaux
    $hsc = function ($p) { return htmlspecialchars($p, ENT_QUOTES); };
     
    $hasDut  = (isset($_POST['dut_serialnumber']) && ctype_digit($_POST['dut_serialnumber']));
    $hasDate = (isset($_POST['date_start']) && date_create($_POST['date_start']));
     
    $hideData_dates = true;
    $hideData_tests = true;
     
    $selectedDut  = null;
    $selectedDate = null;
     
    // si hasDut et hasDate -> on renvoie le formulaire et la liste des tests effectués
    // si hasDut -> on renvoie le formulaire et la liste des date disponibles
     
    if ($hasDut) {
       $selectedDut = $_POST['dut_serialnumber'];
       $dataDates = array('2011-12-01 17:54', '2011-11-01 10:00', '2011-10-01 07:54');
       //$sql = 'SELECT date_start FROM dut_test_data WHERE dut_serialnumber='.$_POST['dut_serialnumber'];
       //$dataDates = mysql_query($sql);
       $hideData_dates = ( ! $dataDates); // au cas oà la requête planterait on affiche pas la zone de liste
    }
     
    if (( ! $hideData_dates) && $hasDate) {
       $selectedDate = $_POST['date_start'];
    }
     
    if ($selectedDut && $selectedDate) {
       $sql = <<<SQL
    SELECT
       test_name,
       test_description,
       test_frequency,
       test_octopack_slot,
       test_octopack_channel,
       test_phase,
       test_value,
       test_limitlow,
       test_limithigh,
       test_result,
       test_unit
    FROM
       dut_test_data
    WHERE
       test_date = '$selectedDate'
    SQL;
     
       //$dataTests = mysql_query($ql);
       $dataTests = array(array_fill(0, 11, 'test1'), array_fill(0, 11, 'test2'), array_fill(0, 11, 'test3'));
       $hideData_tests = ( ! $dataTests); // au cas oà la requête planterait on affiche pas la table
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
       <meta charset="utf-8" />
       <link rel="stylesheet" href="site1.css" />
       <title>Demonstration N�2</title>
    </head>
    <style type="text/css">
       h1 { text-align: center; font-weight: bold; border-width: 12px; border-color: grey; border-style: inset; padding: 5px; }
       h3 { text-decoration: underline; }
       table { border: 5px; }
    </style>
     
    <body>
       <h1>Exploitation de la base de donnees TX_RACK</h1>
       <h3>Choisir le dut_serial_number afin d'afficher les dates des tests r�alis�s :</h3>
       <form method="post" action="test.php">
          <label for="dut_serialnumber">Entrez le dut_serialnumber : </label>
          <input id="dut_serialnumber" type="number" name="dut_serialnumber" required="required" value="<?php echo $selectedDut; ?>" />
          <?php if ( ! $hideData_dates): ?>
          <label for="listeDates">Dates : </label>
          <select id="listeDates" name="date_start">
             <?php foreach($dataDates as $row):
                $isSelected = ($row === $selectedDate) ? ' selected="selected"' : null; ?>
             <option value="<?php echo $hsc($row); ?>"<?php echo $isSelected; ?>><?php echo $hsc($row); ?></option>
             <?php endforeach; ?>
          </select>
          <?php endif; ?>
          <input type="submit" value="Envoyer" />
       </form>
       <?php if ( ! $hideData_tests): ?>
       <table>
          <thead>
             <tr>
                <th>Name</th>
                <th>Description</th>
                <th>Frequency</th>
                <th>Slot</th>
                <th>Channel</th>
                <th>Phase</th>
                <th>Value</th>
                <th>Limit low</th>
                <th>Limit high</th>
                <th>Result</th>
                <th>Unit</th>
             </tr>
          </thead>
          <tbody>
          <?php foreach($dataTests as $row): ?>
             <tr>
                <td><?php echo $hsc($row[0]); ?></td>
                <td><?php echo $hsc($row[1]); ?></td>
                <td><?php echo $hsc($row[2]); ?></td>
                <td><?php echo $hsc($row[3]); ?></td>
                <td><?php echo $hsc($row[4]); ?></td>
                <td><?php echo $hsc($row[5]); ?></td>
                <td><?php echo $hsc($row[6]); ?></td>
                <td><?php echo $hsc($row[7]); ?></td>
                <td><?php echo $hsc($row[8]); ?></td>
                <td><?php echo $hsc($row[9]); ?></td>
                <td><?php echo $hsc($row[10]); ?></td>
             </tr>
          <?php endforeach; ?>
          </tbody>
       </table>
       <?php endif; ?>
    </body>
    </html>
    Et ça fonctionne sans problèmes.
    Ton problème vient du fait je pense qu'il te manque un mysql_connect() au début du script.

  20. #20
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 265
    Points : 20
    Points
    20
    Par défaut
    Toujours rien, il n'est pas possible de reprendre mon code initiale s'il te plait ?
    Merci.

Discussions similaires

  1. [MySQL] liste deroulante dynamique php-mysql
    Par ayoubbrs dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 01/01/2014, 12h55
  2. liste deroulante php
    Par koffi sylvain dans le forum Langage
    Réponses: 3
    Dernier message: 05/11/2013, 13h30
  3. Remplissage liste deroulante php html
    Par Xeuch dans le forum Langage
    Réponses: 2
    Dernier message: 18/02/2013, 16h48
  4. Liste deroulante en javascript, MYSQL et jsp
    Par lucyole dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/05/2008, 00h57
  5. [Rico] Afficher depuis d'une liste deroulante (PHP+AJAX)
    Par maxis dans le forum Bibliothèques & Frameworks
    Réponses: 9
    Dernier message: 27/02/2006, 12h47

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