Aider moi à récupéré les données du menu déroulant

Signaler
-
jordane45
Messages postés
27258
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2020
-
     <?php
require_once("dbcontroller.php");
$db_handle = new DBController();
$query ="SELECT * FROM ville";
$results = $db_handle->runQuery($query);
?>
<html>
<head>
<TITLE>jQuery Dependent DropDown List - Countries and States</TITLE>
<head>
<style>
body{width:610px;font-family:calibri;}
.frmDronpDown {border: 1px solid #7ddaff;background-color:#C8EEFD;margin: 2px 0px;padding:40px;border-radius:4px;}
.demoInputBox {padding: 10px;border: #bdbdbd 1px solid;border-radius: 4px;background-color: #FFF;width: 50%;}
.row{padding-bottom:15px;}
</style>
<script src="jquery-3.2.1.min.js" type="text/javascript"></script>
<script>
function getState(val) {
 $.ajax({
 type: "POST",
 url: "getState.php",
 data:'ville_id='+val,
 success: function(data){
  $("#commune-list").html(data); 
  getCity();
 }
 });
}


function getCity(val) {
 $.ajax({
 type: "POST",
 url: "getCity.php",
 data:'commune_id='+val,
 success: function(data){
  $("#quartier-list").html(data);
 }
 });
}

</script>

<?php 
if (isset ( $_POST [ 'ok' ])) {
  // c'est l'id que je récupérer avec ce code
    echo  'ID ville sélectionné:' . $_POST [ 'ville' ]; 
    echo  'ID commune sélectionné:' . $_POST [ 'comm' ]; 
    echo  'Identifiant quartier:' . $_POST [ 'quartier' ]; 
 } 
?>
<?php 
$query ="SELECT * FROM ville"; ?>

</head>
<body>
 <form action="" method="POST">
 <div class="frmDronpDown">
  <div class="row">
   <label>ville:</label><br/>
    <select  name="ville" id="ville-list" class="demoInputBox form-control" onChange="getState(this.value);" >
     <option value disabled selected>Select ville</option>
     <?php foreach($results as $ville) { ?>
     <option value="<?php echo $ville['id']; ?>"> <?php echo $ville["ville_name"]; ?></option>
     <?php } ?>
    </select>
  </div>
  <div class="row">
   <label>Commune:</label><br/>
    <select name="comm" id="commune-list" class="demoInputBox form-control" onChange="getCity(this.value);" >
    <option value="" name="comm">Select commune</option> 

    </select>

  </div>
  <div class="row">
   <label>Quartier:</label><br/>
    <select name="quartier" id="quartier-list" class="demoInputBox form-control" >
    <option value="" name="quartier">Select quartier</option>
    </select>
  </div>
 </div>
 <button value="submit" name="ok">valider</button>
 </form>
</body>
</html>

4 réponses

Messages postés
27258
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2020
2013
<?php
require_once("dbcontroller.php");
$db_handle = new DBController();

//récupération propre des variables AVANT de les utiliser :
$idVille = !empty($_POST["ville"]) ? $_POST["ville"]: NULL;
$comm  = !empty($_POST["comm"]) ? $_POST["comm"]: NULL;
$quartier  = !empty($_POST["quartier"]) ? $_POST["quartier"]: NULL;

// récupération de la liste des villes
$query = "SELECT * FROM ville "; 
if($idVille){ // si on a submit le formulaire
  $query .= "   WHERE id='$idVille' ";
}

$results = $db_handle->runQuery($query);
?>
<html>
<head>
  <TITLE>Countries and States</TITLE>
  <meta charset="utf-8">
  <style>
    body{
      width:610px;font-family:calibri;
    }
    .frmDronpDown{
      border: 1px solid #7ddaff;background-color:#C8EEFD;margin: 2px 0px;padding:40px;border-radius:4px;
    }
    .demoInputBox {
      padding: 10px;border: #bdbdbd 1px solid;border-radius: 4px;background-color: #FFF;width: 50%;
    }
    .row{
      padding-bottom:15px;
    }
  </style>
  <script src="jquery-3.2.1.min.js" type="text/javascript"></script>
</head>
<body>
  <?php 
    if (isset($_POST['ok'])) {
       echo 'la ville est : ' . $idVille.'<br>';
       echo 'la state est : ' . $comm.'<br>';
       echo 'la city est : '  . $quartier.'<br>';
    }
    ?> 


   <form action="" method="POST">
   <div class="frmDronpDown">
    <div class="row">
     <label>ville:</label><br/>
      <select  name="ville" id="ville-list" class="demoInputBox form-control" onChange="getState(this.value);" >
       <option value disabled selected>Select ville</option>
       <?php
       foreach($results as $ville) { 
        $selected = $ville['id'] == $idVille ? " selected='selected' " : "";
        echo "<option value='".$ville['id']."' ".$selected.">".$ville["ville_name"]."</option>";
       } 
       ?>
      </select>
    </div>
    <div class="row">
     <label>Commune:</label><br/>
      <select name="comm" id="commune-list" class="demoInputBox form-control" onChange="getCity(this.value);" >
      <option value="" name="comm">Select commune</option> 
      </select>
    </div>
    <div class="row">
     <label>Quartier:</label><br/>
      <select name="quartier" id="quartier-list" class="demoInputBox form-control" >
      <option value="" name="quartier">Select quartier</option>
      </select>
    </div>
   </div>
   <button value="submit" name="ok">valider</button>
   </form>
   
    <!-- On place de préférence le javascript a la fin de la page juste avant le </body> -->
    <script>
    function getState(val) {
     $.ajax({
       type: "POST",
       url: "getState.php",
       data:'ville_id='+val,
       success: function(data){
         $("#commune-list").html(data); 
         getCity();
       }
     });
    }


    function getCity(val) {
       $.ajax({
       type: "POST",
       url: "getCity.php",
       data:'commune_id='+val,
       success: function(data){
         $("#quartier-list").html(data);
       }
       });
    }
    </script>
   
  </body>
</html>

James3.4
Messages postés
12
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
15 janvier 2020

ça marche.
mais il me reste seulement a afficher le non de la ville, commune et quartier sélectionner stp.
jordane45
Messages postés
27258
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2020
2013 > James3.4
Messages postés
12
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
15 janvier 2020

Les afficher où ?
Qu'as tu essayé ?
Messages postés
27258
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2020
2013
Bonjour

Quel est le souci exactement ?

Je n'arrive pas à récupérer les données sélectionnées des menu déroulant .
J'arrive seulement à récupérer l'identifient.
jordane45
Messages postés
27258
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2020
2013 > James
Va falloir être plus précis...
Tu veux récupérer quoi exactement ? un exemple de ce que tu penses récupérer ?
Pour en faire quoi ensuite ?
Avec quelles lignes de code ?
> jordane45
Messages postés
27258
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2020

J'ai créé un formulaire de menus déroulante qui me permet d'entrer la ville, la commune et le quartier en ajax et php alors que les différents villes,commune et quartier sont enregistrés dans la base de données ou je récupère pour les affiches sur le formulaire.
Ensuite lorsqu'on remplir le formulaire du menu déroulant j'arrive à récupérer l'identifiant (ID) et non le nom de la ville, commune et quartier.
Messages postés
27258
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2020
2013
Ca vient du contenu de tes listes déroulantes.....
En ajax, que renvoies tu ?

James3.4
Messages postés
12
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
15 janvier 2020

j'utilise ajax pour lie la ville de la commune et du quartier .
j’espère avoir bien compris la question.
James3.4
Messages postés
12
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
15 janvier 2020

toujours dans le même sujet.
j'arrive à récupéré et afficher la valeur de ($_post['ville']) qui est un identifiant de la table: ville.
maintenant que j'ai l'ID de la ville sélectionner.
je voudrais récupéré et afficher grace a L' id de la ville le nom dans le champs ville_nom de la base de données.
mais je me retrouve pas.


<?php if (isset($_POST['ok'])) {
// c'est l'id que je récuper avec ce code
echo 'la ville est : ' . $_POST["ville"].'<br>';
echo 'la state est : ' . $_POST["comm"].'<br>';
echo 'la city est : ' . $_POST["quartier"].'<br>';}
?>

<?php $query ="SELECT 'ville_name' from ville WHERE 'id'=" . $_POST["ville"]; ?>
jordane45
Messages postés
27258
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2020
2013 > James3.4
Messages postés
12
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
15 janvier 2020

Et bien ?
TU as écris la bonne requête visiblement (hormis des quotes en trop )
Il te reste à l'exécuter ...

<?php 
 $idVille = !empty($_POST["ville"]) ? $_POST["ville"]: NULL;
 $query ="SELECT ville_name 
                   FROM ville 
                  WHERE id='$idVille' ";

 $results = $db_handle->runQuery($query);
   ?>


EDIT : Correction de l'emplacement du point-virgule
James3.4
Messages postés
12
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
15 janvier 2020
> jordane45
Messages postés
27258
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2020

on m'affiche une erreur l'orsque j'execute ce code:

error: syntax error, unexpected '$results' (T_VARIABLE)


<?php if (isset($_POST['ok'])) {
// c'est l'id que je récuper avec ce code
echo 'la ville est : ' . $_POST["ville"].'<br>';
echo 'la state est : ' . $_POST["comm"].'<br>';
echo 'la city est : ' . $_POST["quartier"].'<br>';}
?>

<?php
$idVille = !empty($_POST["ville"]) ? $_POST["ville"]: NULL;
$query ="SELECT ville_name
FROM ville
WHERE id='$idVille' "

$results = $db_handle->runQuery($query);
; ?>
yg_be
Messages postés
9330
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
16 janvier 2020
488 > James3.4
Messages postés
12
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
15 janvier 2020

bonjour à tous,
il me semble qu'il manque un point-virgule pour terminer l'instruction qui précède la ligne qui causes le message d'erreur. ce point-virgule est sans doute, par erreur, à la ligne suivante.
Messages postés
12
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
15 janvier 2020

quand j’insère ce code le menu déroulant ne s'affiche plus.
alors que je veux afficher en php la valeur de ville_name sélectionner.

$results = $db_handle->runQuery($query);
jordane45
Messages postés
27258
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2020
2013
Remontre nous ton code complet
James3.4
Messages postés
12
Date d'inscription
mercredi 8 janvier 2020
Statut
Membre
Dernière intervention
15 janvier 2020
> jordane45
Messages postés
27258
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 janvier 2020

voila mon code complet.
<?php
require_once("dbcontroller.php");
$db_handle = new DBController();
$query ="SELECT * FROM ville";
$results = $db_handle->runQuery($query);
?>
<html>
<head>
<TITLE>Countries and States</TITLE>
<head>
<style>
body{width:610px;font-family:calibri;}
.frmDronpDown {border: 1px solid #7ddaff;background-color:#C8EEFD;margin: 2px 0px;padding:40px;border-radius:4px;}
.demoInputBox {padding: 10px;border: #bdbdbd 1px solid;border-radius: 4px;background-color: #FFF;width: 50%;}
.row{padding-bottom:15px;}
</style>
<script src="jquery-3.2.1.min.js" type="text/javascript"></script>
<script>
function getState(val) {
 $.ajax({
 type: "POST",
 url: "getState.php",
 data:'ville_id='+val,
 success: function(data){
  $("#commune-list").html(data); 
  getCity();
 }
 });
}


function getCity(val) {
 $.ajax({
 type: "POST",
 url: "getCity.php",
 data:'commune_id='+val,
 success: function(data){
  $("#quartier-list").html(data);
 }
 });
}

</script>

<?php if (isset($_POST['ok'])) {
 // c'est l'id que je récuper avec ce code
 echo 'la ville est : ' . $_POST["ville"].'<br>';
 echo 'la state est : ' . $_POST["comm"].'<br>';
 echo 'la city est : '  . $_POST["quartier"].'<br>';}
 ?> 

<?php 
 $idVille = !empty($_POST["ville"]) ? $_POST["ville"]: NULL;
 $query ="SELECT ville_name 
                   FROM ville 
                  WHERE id='$idVille' ";

  $results = $db_handle->runQuery($query);
  ; ?> 

</head>
<body>
 <form action="" method="POST">
 <div class="frmDronpDown">
  <div class="row">
   <label>ville:</label><br/>
    <select  name="ville" id="ville-list" class="demoInputBox form-control" onChange="getState(this.value);" >
     <option value disabled selected>Select ville</option>
     <?php foreach($results as $ville) { ?>
     <option value="<?php echo $ville['id']; ?>"> <?php echo $ville["ville_name"]; ?></option>
     <?php } ?>
    </select>
  </div>
  <div class="row">
   <label>Commune:</label><br/>
    <select name="comm" id="commune-list" class="demoInputBox form-control" onChange="getCity(this.value);" >
    <option value="" name="comm">Select commune</option> 
    </select>
  </div>
  <div class="row">
   <label>Quartier:</label><br/>
    <select name="quartier" id="quartier-list" class="demoInputBox form-control" >
    <option value="" name="quartier">Select quartier</option>
    </select>
  </div>
 </div>
 <button value="submit" name="ok">valider</button>
 </form>
</body>
</html>