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 :

Affichage d'image liées entre elles


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 49
    Points : 38
    Points
    38
    Par défaut Affichage d'image liées entre elles
    Bonjour,
    je suis en train de créer un formulaire, d'abord je demande le secteur d'activité et je voudrais qu'en suite s'affiche en fonction du secteur, les types d'infrastructure possible. Ce problème est étrangement ressemblant aux listes liées sur le fond mais sur la forme, je me demandais comment faire ca sous forme d'image ?
    Merci d'avance pour votre aide

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    effectivement le principe reste le même :
    Sur la page principale tu fais ta boucle qui récupèrent tous les infos et lien des images des secteurs que t'affiches comme ca (en PHP) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    while($row = mysql_fetch_assoc($res)) {
    ...
    echo '<img src="'.$row['chemin_image'].'" onClick="traitementAjax(\''.$row['id_du_secteur'].'\')">';
    ...
    }
    Tu récupères l'id du secteur dans ta fonction et tu l'envoies :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <script>
    function traitementAjax(id) {
    ...
    xhr.open("GET", "ajax.php?id=" + id, true);
     
    ...
    }
    </script>
    et sur ta page ajax.php tu récupères ton id de secteur avec $_GET['id'] avec lequel tu construis ta requête et ta boucle.

    Bye
    Vive les roues en pierre

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 49
    Points : 38
    Points
    38
    Par défaut
    J'ai un petit problème maintenant, après avoir fait des tests, dans ma fonction "traitementAjax" l'exécution rencontre un bug juste avant la fin. Voilà mon code

    Citation Envoyé par Code :
    function traitementAjax(id) {
    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;
    }
    }
    // on envoie
    xhr.open("GET", "ajax.php?id=" + id, true);
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    sel = document.getElementById('sousdomaine');
    idDomaine = sel.options[sel.selectedIndex].value; // apparamment ca rentre pas ici !
    xhr.send("idDomaine="+idDomaine);
    }
    Merci d'avance pour votre aide

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 49
    Points : 38
    Points
    38
    Par défaut
    Ca y est, j'ai trouvé !
    En fait, comme il ne s'agissait pas d'une liste déroulante, dans "traitementAjax", il ne fallait pas envoyer l'id mais null !

    xhr.send(null);


    ... et le tour est joué !

  5. #5
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 022
    Points : 2 273
    Points
    2 273
    Par défaut
    En fait ca n'a rien à voir avec la liste, ca dépend de la méthode d'envoi que t'utilises POST ou GET.
    Vive les roues en pierre

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 49
    Points : 38
    Points
    38
    Par défaut
    Bon j'ai vraiment des soucis avec ces listes liées je ne vois vraiment pas où peut être mon erreur alors voilà mon code :

    <label>Secteur</label>
    <select name='secteur' onchange='go()'>
    <option value='-1'>Aucun</option>
    <?
    connexionBD("localhost","root","","mysql");
    $res = mysql_query("SELECT * FROM secteur ORDER BY nom");
    while($row = mysql_fetch_assoc($res)){
    echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
    }
    ?>
    </select>

    <label>Activités</label>
    <select name='activites'>
    <option value='-1'>Choisir un secteur</option>
    </select>
    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('activites').innerHTML = leselect;
    }
    }

    xhr.open("POST","ajaxActivites.php",true);
    xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    sel = document.getElementById('secteur');
    idSecteur = sel.options[sel.selectedIndex].value;
    xhr.send("idSecteur="+idSecteur);
    }
    <?php
    echo "<select name='activites'>";
    if(isset($_POST['idSecteur'])){
    mysql_connect("localhost","root","");
    mysql_select_db("mysql");
    $res = mysql_query("SELECT * FROM activites WHERE idSecteur=".$_POST['idSecteur']." ORDER BY nom");
    while($row = mysql_fetch_assoc($res)){
    echo "<option value='".$row["id"]."'>".$row["nom"]."</option>";
    }
    }
    echo "</select>";
    ?>
    D'avance merci pour votre aide car là, je sature !!

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

Discussions similaires

  1. [c#][.NET 2.0] Datagrid avec 2 combobox liées entre elles
    Par axl63800 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 20/04/2007, 09h31
  2. Deux listes deroulantes liées entre elles
    Par killerhertz dans le forum ASP
    Réponses: 4
    Dernier message: 16/07/2006, 22h43
  3. Problème avec listes liées entre elles et bouton "précé
    Par Oluha dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 02/08/2005, 15h10
  4. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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