IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Listes déroulantes et affichages.


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 46
    Par défaut [AJAX] Listes déroulantes et affichages.
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
       <script language="javascript">
    function request(url,cadre) {
    	var XHR = null;
     
    	if(window.XMLHttpRequest)
    		XHR = new XMLHttpRequest();
    	else if(window.ActiveXObject) 
    		XHR = new ActiveXObject("Microsoft.XMLHTTP");
    	else { 
    		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    		return;
    	}
     
    	XHR.open("GET",url, true);
     
    	XHR.onreadystatechange = function attente() {
     
    	if(XHR.readyState == 4)     {
     
    		document.getElementById(cadre).innerHTML = XHR.responseText;
       }
    	}
    	XHR.send(null);		
    	return;
    }
      </script>

    Feuille1.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
     
    <TR>
    <TD>
    <select onchange="request('donne.php?commercial='+this.value+'','xmlhttp')" name="lcommercial">
    <option selected="selected">Choisissez</option>
    <?php
     
    $requetecommercial= "select distinct ma_comvisu from ma_magasins";
    $rescommercial = mssql_query($requetecommercial);
     
     
     
    while($valcommercial=mssql_fetch_array($rescommercial)) {
            
            echo "<option value=".$valcommercial["ma_comvisu"]." >".$valcommercial["ma_comvisu"]."</option>";
    }
            
     
     
    echo"<option>Tous</option>";
    echo"</select>";
            
    ?>
      </TD>
     
      <TD> 
      <select onchange="request('donne.php?date='+this.value+'','xmlhttp')" name="ldate" id="ldate">
     <?php
     
     $requetedate= "select distinct substring(MA_VisiteDECT,1,10) as date from ma_magasins order by substring(MA_VisiteDECT,1,10)";
      $resdate = mssql_query($requetedate);
      
      
      while($valdate=mssql_fetch_array($resdate)) {
            
            echo "<option>".$valdate["date"]."</option>";
    }
    echo"<option>Tous</option>";
    echo'<option selected="selected">Choisissez</option>';
    echo"</select>";
    ?>
    </TD>
    donne.php

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

    Je pense à un problème du Onchange qui ne renvoi que la valeur de la liste déroulante que l'on touche.

    Merci de votre aide.

  2. #2
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 46
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload = "request('donne.php?commercial=Tous','xmlhttp'); request('donne.php?date=Tous','xmlhttp')">
    Mais cela ne marche pas, chaque colonne s'affiche une fois sur deux !

    Quelqu'un connait une solution ?

  3. #3
    Membre averti
    Inscrit en
    Mai 2009
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 46
    Par défaut
    Alors j'ai résolu le problème d'affichage au lancement de la page.

    Seulement maintenant lorsque je sélectionne un choix dans n'importe quel liste déroulante je voudrais retourner la valeurs de la liste ET également les valeurs des autres listes qui n'ont pas bougées !

    Quelqu'un peu m'aider ?

Discussions similaires

  1. [AJAX] Liste déroulante pour afficher les informations en ajax div ?
    Par rob2-9 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 17/11/2006, 09h06
  2. [AJAX] Liste déroulante qui ne s'actualise pas avec XMLHttpRequest
    Par zoom61 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/11/2006, 09h52
  3. Sélection liste déroulante puis affichage de text box
    Par dolu007 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 11/11/2006, 00h03
  4. Lien en entre listes déroulantes et affichage d'Etat
    Par Sofie109 dans le forum Access
    Réponses: 3
    Dernier message: 08/09/2006, 15h08
  5. [AJAX] Listes déroulantes liées avec Ajax
    Par paupiette dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/08/2006, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo