Se connecter avec
S'enregistrer | Connectez-vous

Listes deroulantes liées

Dernière réponse : dans Programmation

Hello tout le monde,

J'ai un petit problème avec une page.
Cette page en php contient :
- des listes déroulantes de noms prise dans une base de données Mysql
- des listes déroulantes de prénoms prise dans une base de données Mysql
- La liste des prenoms dépend du nom choisis

Cette page fonctionne.
Mais comme elle est faites en php. A chaque fois, que l'on choisit un nom, on est obligé de recharger la page entière pour avoir les prénoms correspondants.

J'ai cru voir qu'il fallait utiliser AJAX pour mettre à jour les lsites sans devoir recharger la page.
Je connais pas du tout le Javascript,quelqu'un pourrait t'il me guider un peu (me donner les étapes)?
Je dois d'abord essayé de mettre l'ensemble des nom et prenom dans un tableau ou alors, je peux travailler avec la bdd?



Merci d'avance pour votre aide.

Autres pages sur : listes deroulantes liees

Lassé par la pub ? Créez un compte

Ben si ... mais j'ai du mal à appréhender comment je peut travailler sur la BDD avec un langage coté client.
Et je ne veux pas faire des bêtes copié-collé à l'arrache pour faire un code dégoutant.

La je lis de la doc sur le java, si j'ai bien compris de toute façon .. il faudra que j'envoie toutes les données avec le php et que je les traite apres avec le Javascript?
C'est ça?

Le problème vient sur IE.
J'ai pas testé avec Firefox.

Merci de ton aide :) 

  1. <html>
  2. <script type="text/javascript">
  3.  
  4. function requete (f)
  5. {
  6. var xhr_object = null;
  7.  
  8. if(window.XMLHttpRequest) // Firefox
  9. {
  10. xhr_object = new XMLHttpRequest();
  11. }
  12. else if(window.ActiveXObject) // Internet Explorer
  13. {
  14. xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
  15. }
  16. else
  17. { // XMLHttpRequest non supporté par le navigateur
  18. alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
  19.  
  20. }
  21.  
  22. var method = f.elements["method"][0].checked ? "GET" : "POST";
  23. var filename = "strings2.php";
  24. var s1 = f.elements["string1"].value;
  25. var s2 = f.elements["string2"].value;
  26. var data = null;
  27.  
  28. if(s1 != "" && s2 != "")
  29. {
  30. data = "s1="+s1+"&s2="+s2;
  31. }
  32.  
  33. if(method == "GET" && data != null)
  34. {
  35. filename += "?"+data;
  36. data = null;
  37. }
  38.  
  39. xhr_object.open(method, filename, true);
  40.  
  41. xhr_object.onreadystatechange = function() {
  42. if(xhr_object.readyState == 4) {
  43. var tmp = xhr_object.responseText.split(":");
  44. if(typeof(tmp[1]) != "undefined") {
  45. f.elements["string1_r"].value = tmp[1];
  46. f.elements["string2_r"].value = tmp[2];
  47. alert(tmp[0]);
  48. }
  49. }
  50. }
  51.  
  52. if(method == "POST")
  53. {
  54. xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  55. }
  56.  
  57. xhr_object.send(data);
  58.  
  59. }
  60.  
  61. </script>
  62. <body>
  63. <div class="Centered">
  64. <form class="CenteredForm" name="form_strings2" id="form_strings2" action="" method="" onsubmit=";">
  65. <fieldset>
  66. <legend>Entrez deux chaînes et choisissez une méthode de transmission</legend>
  67. <div class="Left">
  68. Chaîne 1 : <input type="text" name="string1" id="string1" size="10" /> -> <input type="text" name="string1_c" id="string1_r" size="10" disabled="disabled" /><br />
  69. Chaîne 2 : <input type="text" name="string2" id="string2" size="10" /> -> <input type="text" name="string2_c" id="string2_r" size="10" disabled="disabled" /><br />
  70. Méthode : <input type="radio" name="method" id="method_get" value="GET" checked="checked" />get <input type="radio" name="method" id="method_post" value="POST" />post<br />
  71. </div>
  72. </fieldset>
  73. <input type="button" class="ButtonXL" value="Exécuter l'exemple" onclick="requete(this.form)" />
  74. </form>
  75. </div>
  76.  
  77.  
  78.  
  79.  
  80.  
  81. </body>
  82.  
  83. <html>




strings2.php
  1. header('Content-type: text/html; charset=iso-8859-1');
  2.  
  3. <?php
  4. if(count($_POST) > 0) {
  5. echo "Données reçues en POST:";
  6. foreach($_POST as $v)
  7. echo strrev(utf8_decode($v)).":";
  8. }
  9. elseif(count($_GET) > 0) {
  10. echo "Données reçues en GET:";
  11. foreach($_GET as $v)
  12. echo strrev($v).":";
  13. }
  14.  
  15. if(count($_POST) == 0 && count($_GET) == 0)
  16. echo 'Aucune donnée n\'a été reçue par "'.basename($_SERVER["PHP_SELF"]).'"...';
  17. ?>

Citation :
et c'est qui qui te dit "accès refusé" ?


Ben quand je veux exécuter le script dans internet explorer. Il ne fait rien. Donc je vais voir les erreurs dans le navigateur.
Il me marque : "acces refusé".


Merci boubpopsyteam pour la précision :jap: 
Lassé par la pub ? Créez un compte
  • Contenus similaires :