Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1551 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer variable php d'un select multiple

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer variable php d'un select multiple

n°1807760
bm3w325i
Posté le 03-11-2008 à 16:05:50  profilanswer
 

Bonjour,

 

J'ai crée un double menu déroulant (en php), lorsque je sélectionne un pays dans le menu 1, une liste de région apparaît dans le menu 2. Ceci grâce au langage Ajax. J'aimerai que la selection effectué dans en menu 2 apparaisse dans un input.

 

Mon but étant de traiter le nom sélectionné dans l'api google pour retrouver les coordonnées de la ville sélectionnée:

 

Edit: pour simplifier, comment afficher une sélection dans un input, je choisi Paris et je veux que Paris soit écrit dans un input (sur la même page).

 

Code de gestion du menu "Menu.php':

Code :
  1. <html>
  2. <head>
  3. <?php include ('connexion.php'); ?>
  4.  <title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
  5.  <script type='text/javascript'>
  6.   //var xhr = null;
  7.   // Renvoie le texte de l'objet ActiveXObject le plus rcent depuis une liste
  8.   var pickRecentProgID = function (idList){
  9.    // found progID flag
  10.       var bFound = false;
  11.       for(var i=0; i < idList.length && !bFound; i++){
  12.           try{
  13.               var oDoc = new ActiveXObject(idList[i]);
  14.               o2Store = idList[i];
  15.               bFound = true;
  16.           }catch (objException){
  17.               // trap; try next progID
  18.           };
  19.       };
  20.       if (!bFound)
  21.     throw ("Aucun ActiveXObject n'est valide sur votre ordinateur, pensez  mettre  jour votre navigateur" );
  22.       idList = null;
  23.       return o2Store;
  24.   }
  25.   // Retourne un nouvel objet XmlHttpRequest
  26.   var GetXmlHttpRequest_AXO=null
  27.   var GetXmlHttpRequest=function () {
  28.    if (window.XMLHttpRequest) {
  29.     return new XMLHttpRequest()
  30.    }
  31.    else if (window.ActiveXObject) {
  32.     if (!GetXmlHttpRequest_AXO) {
  33.      GetXmlHttpRequest_AXO=pickRecentProgID(["Msxml2.XMLHTTP.5.0", "Msxml2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"]);
  34.     }
  35.     return new ActiveXObject(GetXmlHttpRequest_AXO)
  36.    }
  37.    return false;
  38.   }
  39.   // Compatibilit avec le script du tutoriel AJAX (developpez.com)
  40.   getXhr=GetXmlHttpRequest;
  41.   /**
  42.   * Mthode qui sera appele sur le click du bouton
  43.   */
  44.   function go(){
  45.      var xhr = getXhr();
  46.      // On dfini ce qu'on va faire quand on aura la rponse
  47.      xhr.onreadystatechange = function(){
  48.         // On ne fait quelque chose que si on a tout reu et que le serveur est ok
  49.         if(xhr.readyState == 4 && xhr.status == 200){
  50.     leselect = xhr.responseText;
  51.     // On se sert de innerHTML pour rajouter les options a la liste
  52.     document.getElementById('bloc').innerHTML = leselect;
  53.         }
  54.      }
  55.      // Ici on va voir comment faire du post
  56.      xhr.open("POST","ajaxRegions.php",true);
  57.      // ne pas oublier a pour le post
  58.      xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
  59.      // ne pas oublier de poster les arguments
  60.      // ici, l'id de l'auteur
  61.      sel = document.getElementById('pays');
  62.      pays = sel.options[sel.selectedIndex].value;
  63.              xhr.send("pays="+pays);
  64.   }
  65. //--------------------------------------------------------------------------------------------------------------------//
  66.  
  67. </script>
  68. </head>
  69. <body>
  70.  <form>
  71.   <fieldset style="width: 500px" border="none">
  72.    <legend>Inserez Coordonnées</legend>
  73.    <label>Pays</label>
  74.    <select name='type' id='pays' onchange='go();'style="width: 500px">
  75.     <option value='-1'>Aucun</option>
  76.     <?php
  77.      $res = mysql_query("SELECT pays FROM listepays" );
  78.      while($row = mysql_fetch_assoc($res)){
  79.       echo "<option value='".$row["pays"]."'>".$row["pays"]."</option>";
  80.      }
  81.     ?>
  82.    </select>
  83.    <label>Regions</label>
  84.    <div id='bloc' style='display:inline' >
  85.     <select name='Region[]' id='Reg' onClick='go2(); style="width: 500px">
  86.      <option value='-1'>Choisir</option>
  87.     </select>
  88.    </div>
  89.   </fieldset>
  90.  </form>
  91.  <?php include 'traitement-recherche.php' ?>
  92. </body>
  93. </html>
 

Code Liaison Ajax:

 
Code :
  1. <?php
  2. if(isset($_POST["pays"])){
  3.  if (mysql_connect("localhost","root","" ) ) {
  4.   if (mysql_select_db("maps" ) ) {
  5.    $requete = "SELECT Region FROM listevilles WHERE pays='".$_POST["pays"]."'";
  6.    if ($res = mysql_query($requete) ) {
  7.     echo "<select name='Region' multiple='true' >";
  8.     while($row = mysql_fetch_assoc($res)){
  9.      echo "<option id='Reg' value='Region'".$row["id"]."'>".$row["Region"]."</option>";
  10.           }
  11.     echo "</select>";
  12.    } else {
  13.     echo "Erreur de requête";
  14.    }
  15.   } else {
  16.    echo "Erreur sélection de base de données";
  17.   }
  18.  } else {
  19.   echo "Erreur de connexion mysql";
  20.  }
  21.     } else {
  22.  echo "pays non défini";
  23. }
  24. ?>
 

Code Google "traitement-recherche.php":

  


Code :
  1. <script type="text/javascript">
  2.    
  3.     var map = null;
  4.     var geocoder = null;
  5.     function load() {
  6.       if (GBrowserIsCompatible()) {
  7.         map = new GMap2(document.getElementById("map" ));
  8.    GEvent.addListener(map, "moveend", function() {
  9.           var center = map.getCenter();
  10.           document.getElementById("message" ).value = center.toString();
  11.         });
  12.         map.setCenter(new GLatLng(48.862004474432936, 2.350902557373047), 4, G_SATELLITE_MAP);
  13.                 map.enableDoubleClickZoom();
  14.  geocoder = new GClientGeocoder();
  15.    
  16.     
  17.       }
  18.     }
  19.     function showAddress(address) {
  20.       if (geocoder) {
  21.         geocoder.getLatLng(
  22.           address,
  23.           function(point) {
  24.             if (!point) {
  25.               alert(address +' '+"Désolé je trouve pas cela dans ma base!" );
  26.             } else {
  27.               map.setCenter(point, 13);
  28.               var marker = new GMarker(point);
  29.               map.addOverlay(marker);
  30.               marker.openInfoWindowHtml(address);
  31.             }
  32.           }
  33.         );
  34.       }
  35.     }
  36.     </script>
  37.     <style type="text/css">
  38.     </style>
  39.   </head>
  40.   <body onload="load()" onunload="GUnload()">
  41.     <form action="#" onsubmit="showAddress(this.address.value); return false">
  42.       <p>Je cherche : (ex :nom ville, france)
  43.         <input type="text" class="form" size="63" name="address" value=".$path." />
  44.         <br />
  45.         La latitude / longitude est:
  46.         <input type="text" class="form" id="message" size="50">
  47. </p>
  48.       <p>
  49.         <input name="submit" id="button" type="submit" value="Valider!" />
  50. </p>
  51.       <div id="map" style="width: 500px; height: 200px" style='display:none'></div>
  52.   </form>

Message cité 2 fois
Message édité par bm3w325i le 03-11-2008 à 17:51:07
mood
Publicité
Posté le 03-11-2008 à 16:05:50  profilanswer
 

n°1807800
fluminis
Posté le 03-11-2008 à 17:34:50  profilanswer
 

Hello,
 
Remarque sur le code Liaison Ajax, je te conseille de ne pas ecrire  
 if (mysql_connect("localhost","root","" ) ) {
  if (mysql_select_db("maps" ) ) {
 
mais d'externaliser les variables de connexion a la base de données dans un fichier. Et d'utiliser ce fichier partout ou tu fais des connexion a la base.
 
include("config.php" );
 if (mysql_connect($CONF['db_host'],$CONF['db_user'],$CONF['db_pswd'] ) ) {
  if (mysql_select_db($CONF['db_dbname'] ) ) {
 
avec dans config.php
<?php
$CONF = array();
$CONF['db_host'] = 'localhost';
$CONF['db_user'] = 'root';
$CONF['db_pswd'] = '';
$CONF['db_dbname'] = 'maps';
?>
 
De ce fait, tu n'auras pas de difficulter a changer de serveur...
 
Par contre, pas d'idée sur ton pb...


---------------
http://poemes.iceteapeche.com - http://www.simuland.net
n°1807806
bm3w325i
Posté le 03-11-2008 à 17:48:12  profilanswer
 

Merci pour l'info, ce code est destiné a un usage interne donc ce n'est pas trop important. En tous cas merci car autant pour les autre fichier j'ai misun include connexion.php, mais ici je ne savais pas comment faire ^^

n°1807921
bm3w325i
Posté le 03-11-2008 à 21:16:02  profilanswer
 

Alors j'ai avancé, mais j'ai un problème, je récupérer la variable cependant il m'affiche le 1ere élément de la liste même si je sélectionne un autre.
 
Function javascript pour recuperer l'element selmectionne et l'afficher:

Code :
  1. function recup() {
  2. var r= document.getElementById('RR').innerHTML;
  3. document.form.address.value=r;
  4. };

n°1807947
CyberDenix
Posté le 03-11-2008 à 22:38:08  profilanswer
 

bm3w325i a écrit :

Bonjour, (...) Ceci grâce au langage Ajax.


 
Bonjour,
 
AJAX n'est pas un langage, c'est l'acronyme de Asynchronous Javascript And XML.
 
 :o  


---------------
Directeur Technique (CTO)
n°1808271
bm3w325i
Posté le 04-11-2008 à 17:43:59  profilanswer
 

Merci pour l'info ^^

n°2030294
Frege64
Dvpl HTML/PHP/MySQL/JavaScript
Posté le 18-10-2010 à 16:45:19  profilanswer
 

bm3w325i a écrit :

Bonjour,
 
J'ai créé un double menu déroulant (en php); lorsque je sélectionne un pays dans le menu 1, une liste de régions apparaît dans le menu 2. Ceci grâce au langage Ajax. J'aimerais que la sélection effectuée dans en menu 2 apparaisse dans un input.
 
Mon but étant de traiter le nom sélectionné dans l'api google pour retrouver les coordonnées de la ville sélectionnée:
 
Edit: pour simplifier, comment afficher une sélection dans un input, je choisi Paris et je veux que Paris soit écrit dans un input (sur la même page).
[...]


 
Si j'ai bien compris, la question est de récupérer le résultat d'une sélection dans une liste et de l'insérer dans un "<input type='text' ...>" de la même page.  
 
C'est relativement trivial en JavaScript.  
 
Voici un petit exemple, à adapter après selon les besoins.  
 

Code :
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. <html>
  3. <head>
  4. <title>selector2input</title>
  5. </head>
  6. <body>
  7. <form name='pour_voir' method='post' action='#'>
  8. Sélecteur:
  9. <select name='monSel' onchange='transfert();'>
  10.   <option value='1'>Un</option>
  11.   <option value='2'>Deux</option>
  12.   <option value='3'>Trois</option>
  13. </select>
  14. <br/></br>
  15. Valeur: <input type=text' name='valeur' value=''/>
  16. <br/>
  17. Libellé: <input type='text' name='label' value=''/>
  18. </form>
  19. </body>
  20. <script type='text/javascript' language='JavaScript'>
  21. <!--
  22. function transfert() {
  23.   var Sel, val, label, extrait;
  24.   Sel = document.getElementsByName('monSel')[0];
  25.   val = document.getElementsByName('valeur')[0];
  26.   label = document.getElementsByName('label')[0];
  27.   // récupère la valeur et la met dans le "<input type='text' ...> approprié
  28.   extrait = Sel.options[Sel.selectedIndex].value;
  29.   val.value = extrait;
  30.   // récupère le libellé de l'option choisie et le met dans le "<input type='text' ...> approprié
  31.   extrait = Sel.options[Sel.selectedIndex].text;
  32.   label.value = extrait;
  33. }
  34. // -->
  35. </script>
  36. </html>


 
Cordialement,
 :hello:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Récupérer variable php d'un select multiple

 

Sujets relatifs
recupérer filtre par selection pour filtrer un etat[resolu]Verification 'variable || contenu champ table mysql'
Récuperer le nom du fichier ouvertConcatener des nom de variable
[PHP] Récupérer fichier CSV à partir d'une adresse puis copie serveuronKeypress sur un SELECT
Comment créer une variable dont le nom est dans une autre variable[Résolu] Syntaxe : getElementById avec une variable
appelle d une variable par une autre variableProblème lié à l'utilisation d'une variable globale
Plus de sujets relatifs à : Récupérer variable php d'un select multiple


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR