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. #21
    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
    Est-ce que tu peux reprendre mon code de test et l'exécuter au moins une fois.
    J'ai oublié de te dire que le script de test devait être dans un fichier intitulé test.php

  2. #22
    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, biensûr, mais je n'ai même plus les dates proposées en fonction du serial_number dans la liste ....

  3. #23
    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
    Montres moi comment tu as adapté mon script

  4. #24
    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
    Bah j'ai rajouté le code pour la connexion à la BDD.

  5. #25
    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
    Bah j'ai rajouté le code pour la connexion à la BDD.
    mysql_connect() suivi de mysql_select_db(), c'est bien ça ?

  6. #26
    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!

  7. #27
    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
    Tu ne veux toujours pas poster le code ? Tu ne risque rien tu sais

  8. #28
    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
    Honnêtement, je ne vois pas pourquoi mon code ne fonctionne pas, je bosse dessus depuis plusieurs jours et ça n'avance pas !
    Toujours le problème pour extraire la date selectionnée dans la liste déroulante, tu n'aurais pas une idée ?
    Je remet le 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
    <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; ?>

  9. #29
    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
    Remplace
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option>', $row['date_start'], '</option>';
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="', $row['date_start'], '">', $row['date_start'], '</option>';

  10. #30
    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 ENVOYER2, la page se recharge mais je n'ai toujours pas la date d'affiché (je demande l'affichage uniquement pour voir que j'ai bien extrais la date selectionnée).
    Merci.

  11. #31
    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
    Pour retrouver ce que tu as sélectionné, il faut gérer l'attribut selected="selected".
    Après avoir extrait tes dates, il faut comparer chaque valeur avec la date sélectionnée et si cela correspond tu ajoutes l'attribut selected à <option></option>.
    Regardes dans ma source $selectedDate Lignes 27 et 78

  12. #32
    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
    Tu peux m'orienter un peu plus en indiquant cela sur mon code car je suis vraiment perdu !
    Merci

  13. #33
    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 php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while($row = mysql_fetch_assoc($result)) {
       $isSelected = ($row['date_start'] === $_POST['date_start']) ? ' selected="selected"' : null;
       echo '<option value="', $row['date_start'], '"', $isSelected, '>', $row['date_start'], '</option>';
    }
    Vérifies bien que la clé est 'date_start' et non 'date_serial' comme précédemment, sinon remplaces.

  14. #34
    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 pareil, la page se recharge mais je ne récupère pas la date !

  15. #35
    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
    rajoutes en haut de ton script comme ça tu verras ce que ton script reçoit comme données à chaque appel

  16. #36
    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 fais plusieurs essais, apparemment je récupère bien la date sélectionnée ! J'obtiens ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [dut_serialnumber] => tx081 [date_start] => 2011-07-07 15:25:02 )

  17. #37
    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
    attends, dut_serialnumber n'est pas un entier ! c'est un texte ! C'est pourquoi mon script ne te renvoyait rien. Le post sur lequel je m'étais appuyé faisait mention de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <INPUT type=int name="dut_serialnumber">
    Et j'ai codé mon script pour vérifier que dut_serialnumber devait être un entier.

    Réessaies avec mon script modifié en conséquence :
    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
    123
    <?php
     
    // RAJOUTE LA CONNEXION A LA BASE DE DONNEES : mysql_connect() mysql_select_db()
     
     
    // securité : echappement des caractères spéciaux
    $hsc = function ($p) { return htmlspecialchars($p, ENT_QUOTES); };
     
    $hasDut  = (isset($_POST['dut_serialnumber']) && strlen($_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'];
       $sql = "SELECT date_start FROM dut_test_data WHERE dut_serialnumber='". mysql_real_escape_string($selectedDut) . "'";
       $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 solid black; }
    </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>
    C'est pour ton bien

  18. #38
    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 la même chose (array et les valeurs des champs dut_serialnumber et date_start). Je ne comprends pas pourquoi on ne peut pas extraire la valeur de la date alors que celle ci est bien envoyé ?

  19. #39
    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
    Après avoir renseigné le champ dut_serialnumber et soumis le formulaire,
    est ce que tu vois au moins le champs Date ?
    Y a t il des données dedans ?

  20. #40
    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 tape le champs dut_serialnumber puis j'appuie sur ENVOYER, ensuite j'ai les dates dans la liste déroulante (dates résultantes de la requête), j'en sélectionne une puis j'appuie sur ENVOYER.
    1er envoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [dut_serialnumber] => tx081 [date_start]
    2ème envoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [dut_serialnumber] => tx081 [date_start] => 2011-07-07 13:31:00 )
    Cela prouve que le champs date est bien renvoyé ? Mais je n'arrive toujours pas à le récupérer;
    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