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] Liste liées via ajax


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 36
    Par défaut [AJAX] Liste liées via ajax
    Bj,,
    Je dois lier 3 liste (combo), j'ai récupérer un script de base avec deux combo --> marche nickel
    J'ai modifier le script et rajouté un combo supplémentaire --- > il ne rempli pas, pourtant la requete sql marche impec en test
    Voici le lien vers le sript de test http://www.powerconcept.be/combo
    Voici mon script complet
    //////////////////////////////////////////////////////////////////////////
    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
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    <html>
    <head>
    <title>Combo</title>
    <script type='text/javascript'>
            var xhr = null; 
     
            function getXhr(){
                    if(window.XMLHttpRequest) // Firefox et autres
                       xhr = new XMLHttpRequest(); 
                    else if(window.ActiveXObject){ // Internet Explorer 
                       try {
                            xhr = new ActiveXObject("Msxml2.XMLHTTP");
                        } catch (e) {
                            xhr = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                    }
                    else { // XMLHttpRequest non supporté par le navigateur 
                       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
                       xhr = false; 
                    } 
            }
     
     
            // Méthode qui sera appelée sur le click du bouton
            function go(){
                    getXhr();
                    // On défini ce qu'on va faire quand on aura la réponse
                    xhr.onreadystatechange = function(){
                            // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
                            if(xhr.readyState == 4 && xhr.status == 200){
                                    leselect = xhr.responseText;
                                    // On se sert de innerHTML pour rajouter les options a la liste
                                    document.getElementById('livre').innerHTML = leselect;
                            }
                    }
     
     
                    // Ici on va voir comment faire du post
                    xhr.open("POST","ajax04b.php",true); //ajax04b.php reçoit les paramètres de l'objet xhr
                    // ne pas oublier ça pour le post
                    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                    // ne pas oublier de poster les arguments
                    // ici, l'id de l'auteur
                    sel = document.getElementById('auteur');
                    idauteur = sel.options[sel.selectedIndex].value;
                    xhr.send("idAuteur="+idauteur);
            }
    		//#########################################################################################################
    		 function getbXhr(){
                    if(window.XMLHttpRequest) // Firefox et autres
                       bxhr = new XMLHttpRequest(); 
                    else if(window.ActiveXObject){ // Internet Explorer 
                       try {
                            bxhr = new ActiveXObject("Msxml2.XMLHTTP");
                        } catch (e) {
                            bxhr = new ActiveXObject("Microsoft.XMLHTTP");
                        }
                    }
                    else { // XMLHttpRequest non supporté par le navigateur 
                       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
                       bxhr = false; 
                    } 
            }
    		 // Méthode qui sera appelée sur le click du bouton
            function gomoteur(){
                    getbXhr();
                    // On défini ce qu'on va faire quand on aura la réponse
                    bxhr.onreadystatechange = function(){
                            // On ne fait quelque chose que si on a tout reçu et que le serveur est ok
                            if(bxhr.readyState == 4 && bxhr.status == 200){
                                    leselect = bxhr.responseText;
                                    // On se sert de innerHTML pour rajouter les options a la liste
                                    document.getElementById('moteur').innerHTML = leselect;
                            }
                    }
     
     
                    // Ici on va voir comment faire du post
                    bxhr.open("POST","recherche.php",true); //ajax04b.php reçoit les paramètres de l'objet xhr
                    // ne pas oublier ça pour le post
                    bxhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
                    // ne pas oublier de poster les arguments
                    // ici, l'id de l'auteur
                    sel = document.getElementById('livre');
                    idmoteur = sel.options[sel.selectedIndex].value;
                    bxhr.send("idMoteur="+idauteur);
            }
     
    </script>
    </head>
     
    <body>
    <form>
    <fieldset style="width: 500px">
            <legend>Liste liées</legend>
            <label>Nos marque</label>
            <select name='auteur' id='auteur' onchange='go()'>
                    <option value='-1'>Aucun</option>
                    <?php
                           require("login_pass.php4");  
                          $db = mysql_connect("$localhost", "$login", "$password"); 
                           mysql_select_db("$nom_base",$db);
                           //$res = mysql_query("SELECT  FROM auteur ORDER BY nom");
                                               $res = mysql_query("SELECT distinct marque FROM chiptuning ORDER BY marque ASC");
                            while($row = mysql_fetch_assoc($res)){
                                                            
                                    echo "<option value='".$row["marque"]."'>".$row["marque"]."</option>";
                            }
                    ?>
            </select>
     
            <label>Nos model</label>
            <div id='livre' style='display:inline' onchange='gomoteur()'>
            <select name='livre'>
                    <option value='-1'>Choisir un model</option>
            </select>
            </div>
     
    		 <label>Les motorisation</label>
            <div id='moteur' style='display:inline'>
            <select name='moteur'>
            <option value='-1'>Choisir la motorisation</option>
            </select>
            </div>
    </fieldset>
    </form>
    </body>
    </html>
    /////////////// ajax04b.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
            echo "<select name='livre'>";
            if(isset($_POST["idAuteur"])){
                     require("login_pass.php4");  
                      $db = mysql_connect("$localhost", "$login", "$password"); 
                      mysql_select_db("$nom_base",$db);
    				  $marque = $_POST["idAuteur"] ;
                      $res = mysql_query("SELECT id,model FROM chiptuning  WHERE marque='$marque' GROUP BY model");
                    while($row = mysql_fetch_assoc($res)){
                            echo "<option value='".$row["model"]."'>".$row["model"]."</option>";
                    }
            }
            echo "</select>";
    ?>
    /////// recherche.php
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php
            echo "<select name='moteur'>";
            if(isset($_POST["idMoteur"])){
                     require("login_pass.php4");  
                      $db = mysql_connect("$localhost", "$login", "$password"); 
                      mysql_select_db("$nom_base",$db);
    				  $model = $_POST["idMoteur"] ;
                      $res = mysql_query("SELECT id,motorisation FROM chiptuning  WHERE model='$model' GROUP BY motorisation ");
                    while($row = mysql_fetch_assoc($res)){
                            echo "<option value='".$row["id"]."'>".$row["motorisation"]."</option>";
                    }
            }
            echo "</select>";
    ?>

    Je cherche depuis trois jours et je n'arrive pas a trouver l'erreur
    Merci d'avance pour votre aide
    Stéphane

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    il y aurait beaucoup à dire sur ton (duplicated) code mais déjà je m'interroge sur ces 3 lignes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    sel = document.getElementById('livre');
    idmoteur = sel.options[sel.selectedIndex].value;
    bxhr.send("idMoteur="+idauteur);

  3. #3
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    En plus de la remarque de NoSmoking
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div id='livre' style='display:inline' onchange='gomoteur()'>
            <select name='livre'>
    Un div n'a pas d'attribut onchange, ça doit être affecté au select.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<select name='livre'>";
    Ton select généré ne fera pas appel à la fonction javascript.

    A+.

Discussions similaires

  1. [AJAX] Listes liées en AJAX
    Par Vinestro dans le forum AJAX
    Réponses: 14
    Dernier message: 03/08/2011, 16h04
  2. [AJAX] Listes liées avec Ajax
    Par r3iko dans le forum AJAX
    Réponses: 1
    Dernier message: 30/06/2009, 00h19
  3. [DOM] Deuxieme liste déroulante liée via ajax, encore inclure ajax?
    Par clara1 dans le forum Général JavaScript
    Réponses: 48
    Dernier message: 16/05/2008, 15h06
  4. [AJAX] Listes liées avec Ajax
    Par Zak_92 dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 15/08/2007, 12h19
  5. [AJAX]Listes liées multiples
    Par Schuss dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 27/06/2006, 16h31

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