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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [AJAX] Deux select liés entre eux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[AJAX] Deux select liés entre eux

n°1390081
creusois
Posté le 18-06-2006 à 17:57:02  profilanswer
 

Bonjour à tous,
 
Voila, je viens de suivre un joli tutorial sur toutjavascript.com en ce qui concerne AJAX. Interessé, j'ai voulu me lancer dans mon premier script; deux listes déroulantes liées entre elles.
 
J'ai réussi sans probleme (en suivant le tutorial).
Le probleme c'est que dans mon second select, ca me rempli le "value" comme le champs. C'est à dire (en HTML pur)

Code :
  1. <option value="France">France</option>


 
Or je souhaiterai qu'il y ai l'id de la france dans value; comme ceci:

Code :
  1. <option value="1">France</option>


 
J'ai donc bien sur modifier ma requete pour avoir le pays et l'id_pays. Mais il faut bien sur changer un peu le code, quelqu'un pourrait-il m'aider ?
 
Je copie-colle mon code javascript

Code :
  1. <script type="text/javascript">
  2. function request05(f) {
  3. var l1    = f.elements["list1"];
  4. var l2    = f.elements["list2"];
  5. var index = l1.selectedIndex;
  6. if(index < 1)
  7.  l2.options.length = 0;
  8. else {
  9.  var xhr_object = null;
  10.  if(window.XMLHttpRequest) // Firefox
  11.   xhr_object = new XMLHttpRequest();
  12.  else if(window.ActiveXObject) // Internet Explorer
  13.   xhr_object = new ActiveXObject("Microsoft.XMLHTTP" );
  14.  else { // XMLHttpRequest non supporté par le navigateur
  15.   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  16.   return;
  17.  }
  18.  xhr_object.open("POST", "req.php", true);
  19.  xhr_object.onreadystatechange = function anonymous() {
  20.   if(xhr_object.readyState == 4)
  21.    eval(xhr_object.responseText);
  22.  }
  23.  xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded" );
  24.  var data = "family="+escape(l1.options[index].value)+"&form="+f.name+"&select=list2";
  25.  xhr_object.send(data);
  26. }
  27. }
  28. </script>
  29. ------------------
  30. <select name="list2">
  31. </select>


 
ET la page PHP:

Code :
  1. header('Content-type: text/html; charset=iso-8859-1');
  2. include('./../config/config.php');
  3. connexion();
  4. $query  = "SELECT appellation FROM cavisteonline_appellation WHERE id_typeappellation = '".$_POST["family"]."'";
  5. $result = mysql_query($query) or die('Erreur SQL : <br />'.$query);
  6. echo 'var o = null;';
  7. echo 'var s = document.forms["'.$_POST["form"].'"].elements["'.$_POST["select"].'"];';
  8. echo 's.options.length = 0;';
  9. while($r = mysql_fetch_array($result))
  10. echo 's.options[s.options.length] = new Option("'.$r["appellation"].'" );';


 
Merci de vos reponses.

mood
Publicité
Posté le 18-06-2006 à 17:57:02  profilanswer
 

n°1390236
nargy
Posté le 19-06-2006 à 08:11:55  profilanswer
 

Dans le script PHP,
au lieu de:
SELECT appellation FROM
tu mets:
SELECT id, appellation FROM
 
tu ajoute un export des IDs dans une array JS:

Code :
  1. echo 'var opt_courante = new Option("'.addslashes($r['appellation']).'" );';
  2. echo 'opt_courante.value='.$r['id'].';';
  3. echo 's.options[s.options.length] = opt_courante;';


n°1390392
creusois
Posté le 19-06-2006 à 13:00:19  profilanswer
 

Merci beaucoup, je teste ce soir.
Merci encore

n°1390954
creusois
Posté le 19-06-2006 à 19:29:00  profilanswer
 

nargy a écrit :

Dans le script PHP,
au lieu de:
SELECT appellation FROM
tu mets:
SELECT id, appellation FROM
 
tu ajoute un export des IDs dans une array JS:

Code :
  1. echo 'var opt_courante = new Option("'.addslashes($r['appellation']).'" );';
  2. echo 'opt_courante.value='.$r['id'].';';
  3. echo 's.options[s.options.length] = opt_courante;';



 
Super, merci ca marche impec, j'avais un peu trifouillé mais sans succès.
 
J'avoue cependant ne pas bien comprendre le bout de code.
 
Voila, merci encore

n°1390961
nargy
Posté le 19-06-2006 à 20:09:09  profilanswer
 

1ère ligne: créer l'option, par exemple 'Paris'
2ème ligne: affecter l'id de 'Paris' à la valeur de l'option, par exemple '75'
3ème ligne: ajouter l'option au select
 
équivalent HTML:

Code :
  1. <select name="ville">
  2. <option value="75">Paris</option>
  3. </select>


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [AJAX] Deux select liés entre eux

 

Sujets relatifs
[Résolu] [MySQL] SELECT sur plusieurs tablesgénération dynamique de <select> dans un form
[avis] web services + ajax ou web services + applet ???[SQL] select count(*)
Framework django dojo et ajaxProbleme avec AJAX et internet explorer
[Javascript] Créer un evenement "ondblclick" dans un SELECTselect count(*) + group by : les sortir en php
Ajax qui fonctionne sur serveur local mais pas sur un serveur distant[Oracle] Problème avec un SELECT
Plus de sujets relatifs à : [AJAX] Deux select liés entre eux


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