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] Encore 3 listes liées, je comprends pas ce qui ne marche pas


Sujet :

AJAX

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Points : 12
    Points
    12
    Par défaut [AJAX] Encore 3 listes liées, je comprends pas ce qui ne marche pas
    Bonjour ca fait 3 jours que je regarde mes codes mais ca ne marche pas! Si quelqu'un veut bien m'aider je serais tres content.

    Je vous donne toutes mes pages.

    Page auteurs.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
    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
     
    <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); 
    } 
     
    function golivre(){ 
    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('prix').innerHTML = leselect; 
    } 
    } 
     
    // Ici on va voir comment faire du post 
    xhr.open("POST","ajaxPrix.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('livre'); 
    idlivre = sel.options[sel.selectedIndex].value; 
    xhr.send("idLivre="+idlivre); 
    } 
    </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> 
    <?php 
    mysql_connect("localhost","root",""); 
    mysql_select_db("test"); 
    $res = mysql_query("SELECT * FROM auteur ORDER BY nom"); 
    while($row = mysql_fetch_assoc($res)){ 
    echo "<option value='".$row["id"]."'>".$row["nom"]."</option>"; 
    } 
    ?> 
    </select> 
    <label>Livres</label> 
    <div id='livre' style='display:inline'> 
    <select name='livre'> 
    <option value='-1'>Choisir un auteur</option> 
    </select> 
    </div> 
    <label>Prix</label> 
    <div id='prix' style='display:inline'> 
    <select name='prix'> 
    <option value='-1'>Choisir un prix</option> 
    </select> 
    </div> 
    </fieldset> 
    </form> 
    </body> 
    </html>
    ///////////////////////////////////////////////////////
    page ajaxLivre.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
     
    <?php 
     
    echo "<select name='livre' id='livre' onchange='golivre()'>"; 
    if(isset($_POST["idAuteur"])){ 
    mysql_connect("localhost","root",""); 
    mysql_select_db("test"); 
    $res = mysql_query("SELECT * 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>"; 
     
    ?>
    ////////////////////////////////////////////////

    page ajaxPrix.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
     
    <?php 
    echo "<select name='prix'>"; 
    if(isset($_POST["idLivre"])){ 
    mysql_connect("localhost","root",""); 
    mysql_select_db("test"); 
    $res = mysql_query("SELECT id,prix FROM prixlivre 
    WHERE idLivre=".$_POST["idLivre"]." ORDER BY prix"); 
    while($row = mysql_fetch_assoc($res)){ 
    echo "<option value='".$row["id"]."'>".$row["prix"]."</option>"; 
    } 
    } 
    echo "</select>"; 
    ?>
    //////////////////////////

    les tables
    --
    -- Table structure for table `auteur`
    --
    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
     
    CREATE TABLE IF NOT EXISTS `auteur` ( 
    `id` tinyint(4) NOT NULL AUTO_INCREMENT, 
    `nom` varchar(50) NOT NULL, 
    PRIMARY KEY (`id`) 
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ; 
     
    -- 
    -- Dumping data for table `auteur` 
    -- 
     
    INSERT INTO `auteur` (`id`, `nom`) VALUES 
    (1, 'Clive Cussler'), 
    (2, 'Harlan Coben'), 
    (3, 'Franck Herbert'), 
    (4, 'Pierre Bordages'); 
     
    -- Table structure for table `livre` 
    -- 
     
    CREATE TABLE IF NOT EXISTS `livre` ( 
    `id` tinyint(4) NOT NULL AUTO_INCREMENT, 
    `titre` varchar(50) NOT NULL, 
    `idAuteur` tinyint(4) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ; 
     
    -- 
    -- Dumping data for table `livre` 
    -- 
     
    INSERT INTO `livre` (`id`, `titre`, `idAuteur`) 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); 
     
     
    -- 
    -- Table structure for table `prixlivre` 
    -- 
     
    CREATE TABLE IF NOT EXISTS `prixlivre` ( 
    `id` tinyint(4) NOT NULL AUTO_INCREMENT, 
    `prix` varchar(50) NOT NULL, 
    `idLivre` tinyint(4) DEFAULT NULL, 
    PRIMARY KEY (`id`) 
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ; 
     
    -- 
    -- Dumping data for table `prixlivre` 
    -- 
     
    INSERT INTO `prixlivre` (`id`, `prix`, `idLivre`) VALUES 
    (1, '45', 1), 
    (2, '32', 1), 
    (3, '23', 1), 
    (4, '78', 2), 
    (5, '45', 2), 
    (6, '109', 2), 
    (7, '87', 3), 
    (8, '29', 3), 
    (9, '12', 4), 
    (10, '123', 4), 
    (11, '332', 4);
    Merci de votre aide

  2. #2
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Dans un premier temps, il ne faut pas avoir des attributs name et id identiques sur deux balises différentes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div id='livre' style='display:inline'> 
    <select name='livre'>
    . Car IE ne distingue pas name et id dans ses fonctions.

    ERE
    Quand une tête pense seule, elle devient folle.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par emmanuel.remy Voir le message
    Salut,

    Dans un premier temps, il ne faut pas avoir des attributs name et id identiques sur deux balises différentes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <div id='livre' style='display:inline'> 
    <select name='livre'>
    . Car IE ne distingue pas name et id dans ses fonctions.

    ERE
    Merci pour la reponse mais ca n'affiche rien.

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Passe ton code modifié.

    ERE
    Quand une tête pense seule, elle devient folle.

  5. #5
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Salut,
    Plutôt que de mettre le onchange sur ton select généré, crée-le dans le callback :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    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;
    document.getElementById('livre').onchange = golivre;
    } 
    }
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Points : 12
    Points
    12
    Par défaut commence a voir quelque chose!
    Merci a vous Bovino! je commence a voir les prix mais il y a encore des problemes

    Auteur : Clive Cussler - Livres ragon (avec tous les autres livres dans la liste) - Prix : Choisir un prix(sans les autres prix dans la liste)
    4) Si je choisi dans livre Odysse j’aurai le prix :
    Auteur : Clive Cussler - Livres :Odysse (avec tous les autres livres dans la liste) - Prix : 45 (sans les autres prix dans la liste)
    5) Si je retourne a Dragon
    Auteur : Clive Cussler - Livres ragon (avec tous les autres livres dans la liste) - Prix : 29 (sans les autres prix dans la liste)
    6) quand je choisi un autre prix le dernier prix reste.


    Voici les pages.

    auteurs.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
    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
    <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('lelivre').innerHTML = leselect; 
    document.getElementById('lelivre').onchange = golivre;
     
    } 
    } 
     
    // 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); 
    } 
     
    function golivre(){ 
    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('leprix').innerHTML = leselect; 
    } 
    } 
     
    // Ici on va voir comment faire du post 
    xhr.open("POST","ajaxPrix.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('livre'); 
    idlivre = sel.options[sel.selectedIndex].value; 
    xhr.send("idLivre="+idlivre); 
    } 
    </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> 
    <?php 
    mysql_connect("localhost","root",""); 
    mysql_select_db("test"); 
    $res = mysql_query("SELECT * FROM auteur ORDER BY nom"); 
    while($row = mysql_fetch_assoc($res)){ 
    echo "<option value='".$row["id"]."'>".$row["nom"]."</option>"; 
    } 
    ?> 
    </select> 
    <label>Livres</label> 
    <div id='lelivre' style='display:inline'> 
    <select name='livre' id='livre'> 
    <option value='-1'>Choisir un auteur</option> 
    </select> 
    </div> 
    <label>Prix</label> 
    <div id='leprix' style='display:inline'> 
    <select name='prix' id='prix'> 
    <option value='-1'>Choisir un prix</option> 
    </select> 
    </div> 
    </fieldset> 
    </form> 
    </body> 
    </html>


    /////////////////////

    ajaxLivre.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' id='livre'>"; 
    if(isset($_POST["idAuteur"])){ 
    mysql_connect("localhost","root",""); 
    mysql_select_db("test"); 
    $res = mysql_query("SELECT * 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>"; 
     
    ?>

    /////////////////////////////

    ajaxPrix.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
    <?php 
    echo "<select name='prix'>"; 
    if(isset($_POST["idLivre"])){ 
    mysql_connect("localhost","root",""); 
    mysql_select_db("test"); 
    $res = mysql_query("SELECT id,prix FROM prixlivre 
    WHERE idLivre=".$_POST["idLivre"]." ORDER BY prix"); 
    while($row = mysql_fetch_assoc($res)){ 
    echo "<option value='".$row["id"]."'>".$row["prix"]."</option>"; 
    } 
    } 
    echo "</select>"; 
    ?>


    Merci pour votre aide

  7. #7
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Citation Envoyé par Jeol2007 Voir le message
    Auteur : Clive Cussler - Livres : Dragon (avec tous les autres livres dans la liste) - Prix : Choisir un prix(sans les autres prix dans la liste)
    4) Si je choisi dans livre Odysse j’aurai le prix :
    Auteur : Clive Cussler - Livres : Odysse (avec tous les autres livres dans la liste) - Prix : 45 (sans les autres prix dans la liste)
    5) Si je retourne a Dragon
    Auteur : Clive Cussler - Livres : Dragon (avec tous les autres livres dans la liste) - Prix : 29 (sans les autres prix dans la liste)
    6) quand je choisi un autre prix le dernier prix reste.
    Tu fais ta recherche de prix sur un livre, il ne doit donc y avoir qu'un seul prix correspondant je pense
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par Bovino Voir le message
    Tu fais ta recherche de prix sur un livre, il ne doit donc y avoir qu'un seul prix correspondant je pense
    Oui c'est vrai mais le probleme c'est quand je choisi un auteur automatiquement un livre apparait mais le prix pour le livre n'apparait pas, alors que quand je rechoisis le livre le prix apparait. Et le prix reste si je choisi un autre auteur, ce qui me fait penser qu'il n'y a pas de lien entre auteur et prix, mais livre et prix.

  9. #9
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Ah d'accord...
    C'est un comportement normal puisque lorsque tu insères ta 2e liste, il s'agit de son état initial, il n'y a donc pas de onchange déclenché et pas de recherche de prix.
    Il faut que tu lances manuellement la fonction golivre() une fois la liste des livres ajoutée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    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;
    document.getElementById('livre').onchange = golivre;
    golivre();
    } 
    }
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Bien, Bien Bien

    Ca marche tres bien.

    Mais il y a une chose:

    - Il y a un bug avec internet explorer, quand je choisi un livre, le prix ne change pas tandis que ca fonctionne sur firefox.

    Merci a toi bovino!

    Edit:Il n'y a qu'un seul probleme et ce n'est qu'avec internet explore

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Jusqu'a present j'ai toujours le meme probleme quand je selectionne une option qui pas de valeur dans la troisieme il m'affiche toujours la derniere valeur affichee

  12. #12
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    Testes la valeur de l'option sélectionnée avant d'afficher la valeur ou de le cacher.

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 30
    Points : 12
    Points
    12
    Par défaut
    Merci tout est ok maintenant.

  14. #14
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    pourriez-vous expliquer la solution pour IE, car chez moi aussi tout fonctionne sauf sous Internet Explorer...

    Merci !

  15. #15
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,
    On ne voit pas ce que tu as fait mais je te conseille ne pas utiliser innerHTML mais de remplir les listes favec un retour XML Une discussion résolue.

  16. #16
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 16
    Points : 18
    Points
    18
    Par défaut
    Aurais-tu un exemple simple de construction avec un retour XML ?
    Cela sous-entends-t-il que IE ne gère pas le innerHTML ?

  17. #17
    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
    Points : 15 059
    Points
    15 059
    Par défaut
    Citation Envoyé par artkap Voir le message
    Aurais-tu un exemple simple de construction avec un retour XML ?
    http://www.developpez.net/forums/d77...x/#post4489970
    Citation Envoyé par artkap Voir le message
    Cela sous-entends-t-il que IE ne gère pas le innerHTML ?
    IE gère mal les éléments créés avec innerHTML.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 02/10/2017, 02h29
  2. [ZF 1.11] Zend form & Ajax pour des listes liée
    Par katsuya dans le forum Zend_Form
    Réponses: 0
    Dernier message: 05/11/2012, 10h59
  3. [XL-2003] Autofilter pour source d'un combobox : je ne trouve pas ce qui ne marche pas
    Par sebdub00 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 14/02/2012, 15h45
  4. Réponses: 1
    Dernier message: 09/05/2009, 02h12
  5. [AJAX] Pb de listes liées en mode Synchrone sous FireFox
    Par olive_le_malin dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 19/12/2006, 17h28

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