Donnez vie à vos documents numériques !
 

Comment compter des boutons radio

abracadabraPDF Forums PDF – Général Comment compter des boutons radio

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #45850
    TonTonSeb
    Membre

    Bonjour,
    Je transforme actuellement d’anciens formulaires papier en formulaires PDF et je tente de leur apporter un peu d’interactivité.
    Je suis confronté au problème suivant :
    Dans une partie d’un formulaire apparait une grille de cotation.
    Il y une ligne par item qui peut être cotée par 3 valeurs respectivement : A, B ou C
    Un item ne peut avoir qu’une seule valeur.
    Exemple :
    ITEM 1 …………. A B C
    ITEM 2 …………. A B C
    ITEM 3 …………. A B C
    Etc …
    J’ai utilisé des boutons radio où j’ai donné le même nom par ITEM afin que l’utilisateur ne puisse pas en cocher deux pour le même ITEM
    Je cherche à compter en fin de grille le nombre total de A, de B et de C
    Comment compter le nombre de bouton radio cochés? comment différencier les A B ou C s’ils portent le même nom ?
    Peut-être que les boutons radio ne sont pas la solution la plus adapté ?
    Dernière info j’utilise Foxit Phantom PDF 9.0
    Merci d’avance.

Affichage de 6 réponses de 1 à 6 (sur un total de 6)
  • Auteur
    Réponses
  • #63860
    bebarth
    Maître des clés

    bonjour,
    Voici un petit script pour te permettre de compter les différentes options choisies :

    Code:
    var totalA=0;
    var totalB=0;
    var totalC=0;
    for ( var i=0; i    var fname = this.getNthFieldName(i);
        if (this.getField(fname).type == “radiobutton” ) {
            var valeur = this.getField(fname).value;
            switch (valeur) {
                case “A”:
                totalA++;
                break;
                case “B”:
                totalB++;
                break;
                case “C”:
                totalC++;
            }
        }
    }
    app.alert(“Boutons radio trouvés :u0020u000Du0020″+ totalA + ” option(s) A.u0020u000Du0020″+ totalB + ” option(s) B.u0020u000Du0020″+ totalC + ” option(s) C.”,1)

    @+
    :bonjour:

    #63861
    TonTonSeb
    Membre

    Bonjour,
    Merci beaucoup Bebarth, c’est exactement le résultat que je cherche à avoir.
    Bonne journée à toi.

    #63862
    bebarth
    Maître des clés

    bonjour,
    As-tu compris le principe ?
    @+
    :bonjour:

    #63863
    TonTonSeb
    Membre

    Oui,
    tu balayes avec la boucle tous les champs,
    tu testes leur type, si ils sont de type bouton radio tu récupères leur valeur A, B ou C
    et grâce au switch tu incrémente la variable correspondante
    puis tu l’affiche dans un message.

    J’ai ajouté à la place du message

    [font=verdana, arial, helvetica, sans-serif]this.getField(“resultat_a”).value=totalA;[/font]
    [font=verdana, arial, helvetica, sans-serif]this.getField(“resultat_b”).value=totalB;[/font]
    [font=verdana, arial, helvetica, sans-serif]this.getField(“resultat_c”).value=totalC;[/font]

    pour avoir le résultat dans des champs texte.

    [font=verdana, arial, helvetica, sans-serif]Pour ma culture et en espérant ne pas trop abuser de ton temps, et il possible de ne pas avoir recours à un bouton pour déclencher le calcul. [/font]
    [font=verdana, arial, helvetica, sans-serif]J’ai essayé d’assigner à chaque bouton radio le script, cela fonctionne bien, mais je ne suis pas sûr que cela soit très propre comme méthode.[/font]

    [font=verdana, arial, helvetica, sans-serif]A+  [/font]

    #63864
    bebarth
    Maître des clés

    …dans le principe c’est ça qu’il faut faire ! mais au lieu coller x fois le script, tu créé un script de document “calcul” par exemple, ensuite tu le rappelles uniquement avec calcul();
    c’est plus pratique lorsqu’il y a des modifications à faire. ça évite de les recoller partout…
    @+
    :bonjour:

    #63865
    TonTonSeb
    Membre

    Bonjour,
    Désolé pour la réponse tardive.
    C’est parfait je vais faire comme ça.
    Merci encore de ton aide.
    a+

Affichage de 6 réponses de 1 à 6 (sur un total de 6)
  • Vous devez être connecté pour répondre à ce sujet.