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 :

Extraire les choix de liste déroulante PHP


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Par défaut Extraire les choix de liste déroulante PHP
    Bonsoir,
    J'ai 3 listes déroulantes en cascade alimentées via MYSQL et je souhaiterais récupérer la sélection de chaque liste déroulante afin de les insérer dans mes tables MYSQL.
    J'essaye en vain depuis 3 jours de trouver la solution mais je rame....
    Je précise que les listes déroulantes sont fonctionnelles.

    Je vous partage le code existant:
    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
    <?php
    require '../ajout_ship/database_connect.php';
    $dbship = new DB();
    $queryMember = "SELECT * FROM member";
    $queryMaker = "SELECT * FROM maker";
    $resultsMember = $dbship->runQuery($queryMember);
    $resultsMaker = $dbship->runQuery($queryMaker);
    ?>
        <html>
        <head>
            <title>Liaison entre deux liste déroulante constructeur et ship</title>
            <head>
                <link rel="stylesheet" href="../ajout_ship/css/style.css" />
                <script src="https://code.jquery.com/jquery-2.1.1.min.js" type="text/javascript"></script>
                <script type="text/javascript" src="../ajout_ship/js/script.js"></script>
            </head>
     
            <body>
                <div class="clearfix">
                    <div class="box">
                        <label>Constructeur:</label>
                        <br/>
                        <select name="maker" id="liste-maker" class="boxInput" onChange="getShip(this.value);">
                            <option value="">Sélectionnez le constructeur</option>
        					<?php
        					foreach($resultsMaker as $maker) {
        					?>
        						<option value="<?php echo $maker["id_maker"]; ?>"><?php echo $maker["name_maker"]; ?></option>
        					<?php
        					}
        					?>
        				</select>
                    </div>
                    <div class="box">
                        <label>Vaisseau/véhicule:</label>
                        <br/>
                        <select name="ship" id="list-ship" class="boxInput" onChange="getShipVariant(this.value);">
                            <option value="">Sélectionnez le vaisseau/véhicule</option>
                        </select>
                    </div>
                    <?php
                    ?>
                    <div class="box" id="box-variant">
                        <label>Variante:</label>
                        <br/>
                        <select name="variant" id="list-variant" class="boxInput">
                            <option value="">Sélectionnez la variante</option>
                        </select>
                    </div>
                </div>
                <!--<div><input type="submit" name="submit" value="Ajouter" /></div>
                <div><?php  ?></div>-->
                <?php
                ?>
     
            </body>
        </head>
        </html>
    ainsi que les 2 appels, get_ship.php:
    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
    <?php
    /*Appel de la base de donnée*/
    require_once("../ajout_ship/database_connect.php");
    $db = new DB();
    /*Test si la variable est non vide*/
     
    $id_maker = $_POST["id_maker"];
     
    if(!empty($_POST["id_maker"])) {
      /**/
    	$query ="SELECT * FROM ship WHERE id_maker = '" . $_POST["id_maker"] . "' ORDER BY name_ship";
    	$results = $db->runQuery($query);
    ?>
    	<option value="">Sélectionnez le vaisseau/véhicule</option>
    <?php
    	foreach($results as $ship) {
    ?>
    	<option value="<?php echo $ship["id_ship"]; ?>"><?php echo $ship["name_ship"]; ?></option>
    <?php
    	}
    }
    ?>

    get_variant.php:
    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
    require_once("../ajout_ship/database_connect.php");
    $db = new DB();
    if(!empty($_POST["id_ship"])) {
      $query ="SELECT DISTINCT name_variant FROM ship_variant WHERE id_ship = '" . $_POST["id_ship"] . "' ORDER BY name_variant";
      $results = $db->runQuery($query);
    ?>
      <option value="">Sélectionnez la variante</option>
    <?php
      foreach($results as $shipvariant) {
    ?>
      <option value="<?php echo $shipvariant["name_variant"]; ?>"><?php echo $shipvariant["name_variant"]; ?></option>
    <?php
      }
    }
    ?>
    Je vous montre aussi mon fichier javascript:
    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
    function getShip(val) {
      $.ajax({
      type: "POST",
      url: "../ajout_ship/get_ship.php",
      data:'id_maker='+val,
      success: function(data){
        $("#list-ship").html(data);
      }
      });
    }
     
    function getShipVariant(val) {
        $.ajax({
        type: "POST",
        url: "../ajout_ship/get_variant.php",
        data:'id_ship='+val,
        success: function(data){
            $("#list-variant").html(data);
        }
        });
    }
     
    function selectMaker(val) {
        $("#search-box").val(val);
        $("#suggesstion-box").hide();
    }
    Pourriez-vous me venir en aide?

    Cordialement.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    1- il manque la balise <form method="post"...>,
    2-
    <select name="maker"... -> on récupère avec $_POST['maker'],
    <select name="ship"... -> on récupère avec $_POST['ship']...
    Où est le problème ?
    Dernière modification par rawsrc ; 18/01/2020 à 17h28.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Par défaut
    Bonjour,

    Désolé, je réponds un peu tardivement.
    Etant néophyte, j'ai réussi à écrire ce code à l'aide de diverses exemples, mais je n'arrive pas à comprendre le fonctionnement des récupérations de données, même en regardant des tutos php.
    Je trouve qu'ils n'expliquent pas correctement le fonctionnement, ce qui m'amène à galérer....

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    tu galères parce que tu veux brûler les étapes.
    Comme beaucoup de débutants.

    On ne se lance pas dans des "listes déroulantes liées via Ajax" quand on ne maitrise pas les bases du/des langage/s.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 75
    Par défaut
    Vous parlez des bases AJAX et PHP?

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/03/2011, 16h47
  2. [MySQL] Liste déroulante php/sql n'affichant pas toutes les données.
    Par Nicolas_k dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/02/2010, 13h01
  3. [javascript/php]Recharger une page après choix dans liste déroulante
    Par eyango dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/01/2008, 13h34
  4. [VBA] choix valeur liste déroulante (champ texte d'1 table)
    Par Lou Pitchoun dans le forum Access
    Réponses: 14
    Dernier message: 22/02/2006, 10h27
  5. Réponses: 2
    Dernier message: 25/11/2005, 12h09

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