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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  Listes déroulantes et affichages

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Listes déroulantes et affichages

n°1958026
cuteur209
Posté le 14-01-2010 à 17:59:39  profilanswer
 

Bonjour à tous, je dispose actuellement d'une liste déroulante alimenter par une base de donnée.
Lorsque l'utilisateur sélectionne une option dans la liste, le choix choisis s'affiche sans ce rafraichir dans un tableau.
 
Voici le code :
 
Feuille1.php (Javascript)
 

Code :
  1. <script language="javascript">
  2. function request(url,cadre) {
  3. var XHR = null;
  4. if(window.XMLHttpRequest)
  5.  XHR = new XMLHttpRequest();
  6. else if(window.ActiveXObject)
  7.  XHR = new ActiveXObject("Microsoft.XMLHTTP" );
  8. else {
  9.  alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..." );
  10.  return;
  11. }
  12. XHR.open("GET",url, true);
  13. XHR.onreadystatechange = function attente() {
  14. if(XHR.readyState == 4)     {
  15.  document.getElementById(cadre).innerHTML = XHR.responseText;
  16.    }
  17. }
  18. XHR.send(null);
  19. return;
  20. }
  21.   </script>


 
Feuille1.php  
 

Code :
  1. <TR>
  2. <TD>
  3. <select onchange="request('donne.php?commercial='+this.value+'','xmlhttp')" name="lcommercial">
  4. <option selected="selected">Choisissez</option>
  5. <?php
  6. $requetecommercial= "select distinct ma_comvisu from ma_magasins";
  7. $rescommercial = mssql_query($requetecommercial);
  8. while($valcommercial=mssql_fetch_array($rescommercial)) {
  9. echo "<option value=".$valcommercial["ma_comvisu"]." >".$valcommercial["ma_comvisu"]."</option>";
  10. }
  11. echo"<option>Tous</option>";
  12. echo"</select>";
  13. ?>
  14.   </TD>
  15.  
  16.   <TD>
  17.   <select onchange="request('donne.php?date='+this.value+'','xmlhttp')" name="ldate" id="ldate">
  18. <?php
  19. $requetedate= "select distinct substring(MA_VisiteDECT,1,10) as date from ma_magasins order by substring(MA_VisiteDECT,1,10)";
  20.   $resdate = mssql_query($requetedate);
  21.  
  22.  
  23.   while($valdate=mssql_fetch_array($resdate)) {
  24. echo "<option>".$valdate["date"]."</option>";
  25. }
  26. echo"<option>Tous</option>";
  27. echo'<option selected="selected">Choisissez</option>';
  28. echo"</select>";
  29. ?>
  30. </TD>


 
donne.php
 

Code :
  1. <?php
  2. if(($_GET['commercial']!='Tous') && ($_GET['commercial']!='Choisissez')){
  3. $valeurcommercial = $_GET['commercial'];
  4. echo '<TR>';
  5. echo '<TD>';
  6. echo $valeurcommercial;
  7. echo '</TD>';
  8. echo '<TD>';
  9. echo '</TD>';
  10. echo '</TR>';
  11. }
  12. if(($_GET['commercial']=='Tous') || ($_GET['commercial']=='Choisissez')){
  13. $hostname = 'aa';
  14. $username = 'aa';           
  15. $password = 'aa';
  16. $base = 'aa';
  17. $cnx = mssql_connect($hostname, $username,$password) or die("erreur de connexion au serveur $host" );
  18. $db = mssql_select_db($base, $cnx) or die("Erreur de connexion a la base de donnees" );
  19. $requetecommercial= "select distinct ma_comvisu from ma_magasins";
  20. $rescommercial = mssql_query($requetecommercial);
  21.  
  22. while($valcommercial=mssql_fetch_array($rescommercial)) {
  23. echo '<TR>';
  24. echo '<TD>';
  25. echo $valcommercial["ma_comvisu"];
  26. echo '</br>';
  27. echo '</TD>';
  28. echo '</TR>';
  29. }
  30. }
  31. ?>


 
Comme vous pouvez le voir dans mon code Php, j'ai ajouter une seconde liste déroulante.
Je ne souhaite pas mettre à jour une liste déroulante par rapport à l'autre.
Cependant je voudrais que lorsque que je choisis une option dans la première liste, l'option par défaut de la seconde soit également pris en compte et vice versa.
 
Je m'explique, je dispose d'une liste Commercial et Date. Je choisis une date dans ma seconde liste déroulante sans toucher à la première,je voudrais que que cela m'affiche tous les commercial de cette date précise.
(Tous puisque je voudrais que la valeur par défaut des listes lors du premier affichage de la page soit "Choisissez" qui corespond à tous les commercial dans mon code)
 
Bon j'ai fais quelques test car il faut également que lorsque la page s'affiche pour la première fois (C'est à dire sans toucher aucune des deux listes) le contenu complet des deux liste doit s'afficher dans mon tableau.
 
Première colonne affichage de tous les commerciaux et deuxième colonne toutes les dates.
 
j'ai tenter d'ajouter ceci :
 

Code :
  1. <body onload = "request('donne.php?commercial=Tous','xmlhttp'); request('donne.php?date=Tous','xmlhttp')">


 
Sans réussite  :pt1cable:  
 
Merci de votre aide.   :)

mood
Publicité
Posté le 14-01-2010 à 17:59:39  profilanswer
 

n°1958173
olivthill
Posté le 15-01-2010 à 13:46:15  profilanswer
 

Comme Monsieur Jourdain qui faisait de la prose sans le savoir, vous faîtes de l'Ajax sans donner l'impression de le savoir. Si vous n'êtes pas l'auteur de ce code, je vous conseillerais de lire des tutoriels sur Ajax, car vous comprendrez mieux comment ça marche, et comment changer votre code.
 
En bref, il faudrait :
 
1. Changer les paramètres en entrée d'Ajax.
Actuellement, le passage de paramètre est réalisé par la ligne :

<select onchange="request('donne.php?commercial='+this.value+'','xmlhttp')" name="lcommercial">


Il n'y a qu'un seul paramètre, qui est this.value, autrement dit qui est le choix dans la liste Commercial. Il faudrait ajouter le choix dans la liste Date. Mais, il faudrait écrire un peu de javascript complémentaire pour récupérer la valeur actuelle de l'autre liste.
 
2. Ajouter le critère de la date dans la partie serveur (PHP).
 
Pour l'initialisation, il n'est pas nécessaire de passer par onLoad et Ajax. Comme la page est générée dynamiquement par PHP, il suffit de bien la définir au début.


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

  Listes déroulantes et affichages

 

Sujets relatifs
[HTML/Css/Javascript] Listes liées avec la librairie prototypelistes C
Intitulé d'un évènement sur 2 listes déroulantes [RESOLU]3 Listes déroulantes liées
Probleme ajax listes liéesListes à choix multiple avec VBScript
2 listes déroulantes liés javascript+phpmysql+ajax 
Plus de sujets relatifs à : Listes déroulantes et affichages


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