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] Checkbox true/false sur onchange d'un select


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 144
    Par défaut [AJAX] Checkbox true/false sur onchange d'un select
    Bonsoir,

    mon problème est simple et pourtant je n'ai - encore - rien trouvé (certainement parce que j'ai mal cherché!). Voici l'exposé du dit problème:
    il faudrait que sur l'événement onchange d'un select, la valeur de checkbox passe à true ou false (les informations sont récupérées à partir d'une requête sous forme de 1 ou 0). Comment l'indiquer dans la fonction ajax? Je pourrais très bien le faire avec des select liés (ça je sais faire) mais les chekbox sont plus pratiques.
    J'espère avoir été assez clair. Merci pour vos réponses et bonne fin de soirée.

  2. #2
    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,
    Tu n'as pas besoin d'AJAX pour ça, c'est du simple javascript .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function changer(obj)
    {
    var a = obj.options[obj.selectedIndex].value;
    if(a=="x" || a=="y" ||  a=="z")
     {
        document.getElementById("idCheckbox").checked=true;//cocher
     }
     else
    {
        document.getElementById("idCheckbox").checked=false;//decocher
     }
    }
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <select onchange="changer(this)">
    <option value="a">a</option>
    <option value="b">b</option>
    <option value="c">c</option>
    <option value="x">x</option>
    <option value="y">y</option>
    <option value="z">z</option>
    </select>
    <input type="checkbox" id="idCheckbox"/>

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 144
    Par défaut
    Merci pour la réponse. Mais je n'avais pas été assez clair.
    Dans la page html, il y a un select composé d'une liste de personnes et 4 checkbox. Au premier affichage de la page, aucune personne n'est sélectionnée et les checked sont à false.
    Quand je sélectionne une personne, une requête est lancée pour retourner 4 valeurs booléennes associées à la personne (dans une autre table).
    Ajax me semble tout indiqué et j'aurais mieux fait de tourner mon clavier sept fois dans mes mains avant de poser la question car j'ai trouvé la solution ce matin
    La requête retourne une chaîne de 4 caractères de 1 et 0 que je teste:
    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
     
    ...
    var rst=xhr.responseText;
    switch (rst){
      case "1001":
        document.getElementById("chk1").checked=true;
        document.getElementById("chk4").checked=true;
        break;
     
      case "0101":
        document.getElementById("chk2").checked=true;
        document.getElementById("chk4").checked=true;
        break;
    ...
    }
    Le hic, c'est qu'avec cette méthode,je vais tester 16 cas... J'ai lu un topic sur l'art et la manière de récupérer un caractère dans une chaîne mais je ne le retrouve plus! Ainsi je pourrai diviser par 4 le nombre de tests.
    Si quelqu'un l'a lu également, ce serait sympa de donner le lien. En attendant, je continue de le chercher.
    Merci.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par jfox Voir le message
    Le hic, c'est qu'avec cette méthode,je vais tester 16 cas...
    effectivement, mieux vaudrait restreindre aux 4 cas à gérer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    var rst=xhr.responseText;
    var tabRst = rst.split("");    // Convertit la chaîne en tableau de caractères
    var lRst = tabRst.length;    // Récupère la longueur
    for (var i=0; i<lRst; i++)     // Boucle sur les caractères
       document.getElementById("chk"+(i+1)).checked=(tabRst[i] == "1");


    A+

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 144
    Par défaut
    Génial!!!
    Je teste avant de mettre le tag "résolu".
    Merci.

  6. #6
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2003
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 144
    Par défaut
    Ça fonctionne nickel!
    Dans le même temps, j'ai trouvé ce que je cherchais: il s'agit de la fonction substring (testée avec succès également).
    Merci.

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

Discussions similaires

  1. [JXTable] Afficher CheckBox plutot que true/false
    Par nicou_doude dans le forum AWT/Swing
    Réponses: 12
    Dernier message: 26/05/2010, 10h40
  2. J'utilise une table JExcelTable qui m'affiche true / false au lieu d'un checkBox
    Par mourmfih dans le forum Interfaces Graphiques en Java
    Réponses: 0
    Dernier message: 06/10/2009, 14h32
  3. problème avec select sur onchange
    Par Kerod dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/12/2005, 14h05
  4. redirection JScript sur OnChange
    Par Platypus dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 03/03/2005, 17h50
  5. DBGrid Enabled true/false > pb de rafraichissement
    Par Harry dans le forum Bases de données
    Réponses: 8
    Dernier message: 14/10/2004, 16h50

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