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

JavaScript Discussion :

[AJAX] deux listes liées


Sujet :

JavaScript

  1. #1
    Membre habitué Avatar de kawther
    Inscrit en
    Avril 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 307
    Points : 143
    Points
    143
    Par défaut [AJAX] deux listes liées
    bonjour
    je veux avoir deux listes qui sont liées.selon ce qui est selectionné dans la première liste je change le continue de la deuxième.
    ma base de données est la suivante:
    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
     
    CREATE TABLE `auteur` (
    `id` tinyint(4) NOT NULL auto_increment,
    `nom` varchar(50) NOT NULL,
    PRIMARY KEY (`id`)
    );
    insert into `auteur` values
    (1,'Clive Cussler'),
    (2,'Harlan Coben'),
    (3,'Franck Herbert'),
    (4,'Pierre Bordages');
    CREATE TABLE `livre` (
    `id` tinyint(4) NOT NULL auto_increment,
    `titre` varchar(50) NOT NULL,
    `idAuteur` tinyint(4) default NULL,
    PRIMARY KEY (`id`)
    ) ;
    insert into `livre` values
    (1,'Odyssee',1),
    (2,'Sahara',1),
    (3,'Dragon',1),
    (4,'Une chance de trop',2),
    (5,'Ne le dis a personne',2),
    (6,'Disparu à jamais',2),
    (7,'Dune',3),
    (8,'La barriere de santaroga',3),
    (9,'Les guerriers du silence',4),
    (10,'La citadelle hyponeros',4),
    (11,'Terra mater',4);
    et j'ai le fichier auteurs.php qui contient les deux listes:
    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
     
    <html>
    <head>
    <title>Tutoriel Ajax (XHTML + JavaScript + XML)</title>
    <script type='text/javascript'>
    function getXhr(){
    var xhr = null;
    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;
    }
    return xhr;
    }
    /**
    * Méthode qui sera appelée sur le click du bouton
    */
    function go(){
    var xhr = 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","ajaxLivre.php",true);
    // 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);
    }
    </script>
    </head>
    <body>
    <form>
    <fieldset style="width: 500px">
    <legend>Liste liées</legend>
    <label>Auteurs</label>
    <select name='auteur' id='auteur' onchange='go()'>
    <option value='-1'>Aucun</option>
    <?
    mysql_connect('localhost','root','root');
    mysql_select_db('test');
    $res = mysql_query("SELECT * FROM auteur ORDER BY
    nom");
    while($row = mysql_fetch_array($res)){
    $id=$row['id'];
    $nom=$row['nom'];
    echo "<option
    value='$id'>'$nom'</option>";}
    ?>
    </select>
    <label>Livres</label>
    <div id='livre' style='display:inline'>
    <select name='livre'>
    <option value='-1'>Choisir un auteur</option>
    </select>
    </div>
    </fieldset>
    </form>
    </body>
    </html>
    et le script ajaxLivre.php suivant:
    Code : 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"])){
    mysql_connect("localhost","root","root");
    mysql_select_db("test");
    $res = mysql_query("SELECT id,titre FROM livre
    WHERE idAuteur=".$_POST["idAuteur"]." ORDER BY titre");
    while($row = mysql_fetch_assoc($res)){
    echo "<option value='".$row["id"]."'>".$row["titre"]."</option>";
    }
    }
    echo "</select>";
    ?>
    je sais pas pourquoi j'obtient pas de résultat avec ce script.
    SVP j'ai besoin de votre aide.
    d'avance merci.

  2. #2
    Membre habitué Avatar de kawther
    Inscrit en
    Avril 2006
    Messages
    307
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2006
    Messages : 307
    Points : 143
    Points
    143
    Par défaut salut
    j'attend encore l'aide de votre part car je suis bloquée. SVP si vous avez une idée n'hésitez pas à me proposer car j'en est besoin.
    merci

  3. #3
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    As-tu installé Firebug sur ton FireFox et pu t'assurer:

    1) qu'il n'y a pas d'erreur javascript
    2) observé le protocol http et pu observer que tout semble normal

    ?
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

Discussions similaires

  1. [AJAX] 3 listes liées
    Par oranocha dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 28/11/2007, 13h11
  2. [PEAR][HTML_QuickForm] Deux listes liées
    Par petchos dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 22/03/2007, 10h41
  3. [AJAX] plusieurs listes liées
    Par highman dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 02/03/2007, 10h31
  4. Deux listes lies et un lien
    Par arti2004 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/03/2006, 16h44

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