Donnez vie à vos documents numériques !
 

Lier la sélection des boutons radio aux choix de la liste déroulante

abracadabraPDF Forums PDF – Général Lier la sélection des boutons radio aux choix de la liste déroulante

  • Ce sujet est vide.
  • Créateur
    Sujet
  • #46185
    LolaRMC
    Membre

    Bonjour.

    J’ai un fichier Adobe Acrobat XI à retravailler.
    Je voudrais relier la sélection de bouton radio aux éléments d’une liste déroulante se trouvant à la suite.

    Actuellement la liste déroulante comporte 5 éléments, ils apparaissent tous quelque soit la sélection du bouton radio.

    Je voudrais que si je sélectionne le bouton radio n°1 n’apparaissent dans la liste déroulante seulement les éléments correspondants au bouton radio n°1.
    De même pour le bouton n°2, donc que les éléments correspondants au bouton n°1 n’apparaissent plus etc…

    Exemple :
    Sélection bouton radio : n°1Choix liste déroulante :
    – 1- 2- 3
    Sélection bouton radio : n°2Choix liste déroulante- 4- 5

    Je suis assez novice sur le sujet en général et d’autant plus avec les scripts.

    Je remercie toutes les personnes qui prendront la peine de m’aider.
    Cordialement.
    Lola

Affichage de 19 réponses de 1 à 19 (sur un total de 19)
  • Auteur
    Réponses
  • #66629
    Merlin
    Maître des clés

    Bonjour et bienvenue

    A priori c’est simple mais il manque des infos :
    – combien y a-t-il de boutons-radio ?
    – quels sont les éléments de la liste ?
    – peux tu partager ton document ou bien une simple maquette ?

    #66630
    bebarth
    Maître des clés

    bonjour,
    D’après ce que j’ai compris, voici un script pour remplir la liste selon 2 boutons radio :

    Code:
    this.getField(« Liste »).clearItems();
    if (event.target.value==1) {
        this.getField(« Liste »).setItems([1,2,3]);
    } else {
        this.getField(« Liste »).setItems([« quatre », »cinq », »six »]);
    }

    Ce script est à placer en action souris relâchée des boutons radio.
    @+
    :bonjour:

    #66631
    LolaRMC
    Membre

    Bonjour,

    Il y a 5 boutons :
    1 : « CDI »
    2 :  » CDD »
    3 : « Entraide »
    4 : « Intérim »
    5: « Alternant »

    Les éléments de la liste sont :
    1: « Création de poste »
    2 : « Remplacement agent absent »
    3 : « Sortie définitive du titulaires du poste »
    4 : « Surcroit temporaire d’activité »

    Je voudrais lier les boutons aux éléments de la liste de cette manière :
    1 « CDI » ==> « Création de poste + Remplacement agent absent + Sortie définitive du titulaire du poste.
    Les bouton 2 à 4 ==> Remplacement agent absent + Surcroît temporaire d’activité.
    5 « alternant » ==> « Création de poste ».

    Je voudrais également qu’un élément vide apparaisse pour qu’ils aient la possibilité de ne rien sélectionner
    Je vous remercie et vous joins mon fichier

    #66632
    bebarth
    Maître des clés

    Ci-joint ton fichier avec le script que je te propose.
    Je te laisse l’étudier et revenir vers moi si tu as des questions.
    Comme ce script est commun pour les 5 boutons radio, je l’ai mis en fonction dans un script de document et l’appelle en script « action souris relâchée » pour chacun d’eux.
    @+
    :bonjour:

    #66633
    LolaRMC
    Membre

    Merci beaucoup,

    J’aimerais reproduire l’action que tu as fait dans mon fichier original mais lorsque j’ouvre les propriétés du bouton radio -> « Actions » -> Sélectionner le déclencheur = Souris relâcher -> Sélectionner l’action = Afficher/ Masquer un champ -> et que j’ouvre « Executer un javascript » apparait seulement  » liste(); « 

    Je n’arrive pas à trouver la où se fait la différenciation entre les éléments de la liste.

    Ça doit la où tu dis que tu l’as mis en « fonction dans un script de document » mais mon peu d’expérience ne sait pas ce que c’est ^^ .
    Merci encore de ton aide

    #66634
    bebarth
    Maître des clés

    Dans la liste des outils il y en a un qui se nomme « JavaScript ».
    Lorsque tu le sélectionnes, tu devrais trouver « Scripts JavaScript du document ».@+
    :bonjour:

    #66635
    LolaRMC
    Membre

    En cherchant un peu j’ai trouvé où était le script correspondant à « list »

    function liste() {
    var tousLesMotifs=[«  », »Création de poste », »Remplacement agent absent », »Sortie définitive du titulaire du poste », »Surcroit temporaire d’activité »];
    switch(event.target.value) {
        case 1:
            var motifs=[0,1,2,3];
            break;
        case 5:
            var motifs=[0,1];
            break;
        default:
            var motifs=[0,2,4];
    }
    var lesMotifs=new Array();
    for (var i=0; i);
    lesMotifs.unshift(« — Sélectionnez un motif –« )
    this.getField(« motifRecours »).clearItems();
    this.getField(« motifRecours »).setItems(lesMotifs);
    }

    C’est bien celui la ?
    Mais dans mon document le champ s’appelle MOTIF DE RECOURS. Dois je modifier une partie pour qu’il s’adapte à l’intitulé de mon champ dans cette partie « this.getField(« motifRecours »).clearItems();
    this.getField(« motifRecours »).setItems(lesMotifs); »?

    #66636
    LolaRMC
    Membre

    Alors c’est encore moi. On y est presque.
    Cela marche bien pour les cases 1 et 5
    Mais pour les case par défaut cela fait apparaitre les motifs 0, 1 et 2 et non les motifs 0, 2 et 4. Je ne sais pas pourquoi cela apparait car ça ne correspondant à aucune demande

    Et d’ailleurs lorsque je supprime l’exécution du javascript sur les boutons, il ne reste que les motifs 0, 1 et 2 dans la liste déroulante, les autres sont supprimés.

    Merci

    #66637
    bebarth
    Maître des clés

    J’ai modifié le nom des champs car normalement il ne doivent contenir ni d’espaces, ni de caractères accentués ou spéciaux.

    Et d’ailleurs lorsque je supprime l’exécution du javascript sur les boutons, il ne reste que les motifs 0, 1 et 2 dans la liste déroulante, les autres sont supprimés.

    Tu dois avoir une erreur… regarde ma copie d’écran, n’est-ce pas cela que tu veux ?

    Et d’ailleurs lorsque je supprime l’exécution du javascript sur les boutons, il ne reste que les motifs 0, 1 et 2 dans la liste déroulante, les autres sont supprimés.

    J’ai pas compris !

    @+
    :bonjour:

    #66638
    LolaRMC
    Membre

    Oui j’ai modifié également le nom de mes champs pour qu’ils soient similaire aux tiens.

    Pour les CDD et Intérim (j’ai supprimé le boutons « entraide » donc plus que 4 boutons), je voudrais qu’apparaisse « Remplacement d’agent absent » et « Surcroit temporaire d’activité » et non pas « Création de poste » & « Remplacement d’agent absent »

    function liste() {
    var tousLesMotifs=[«  », »Création de poste », »Remplacement agent absent », »Sortie définitive du titulaires du poste », »Surcroit temporaire d’activité« ];
    switch(event.target.value) {
        case 1:
            var motifs=[0,1,2,3];
            break;
        case 4:
            var motifs=[0,1];
            break;
        default:
            var motifs=[0,2,4];

    }
    var lesMotifs=new Array();
    for (var i=0; i);
    lesMotifs.unshift(« Sélectionnez un motif »)
    this.getField(« motifRecours »).clearItems();
    this.getField(« motifRecours »).setItems(lesMotifs);
    }

    Les numéros des motifs 0 1 2 3 4 sont établis en fonction de leur ordre d’écriture dans « var tousLesMotifs= »  ?
    0 = «  »
    1 = « Création de poste »
    2 = « Remplacement agent absent »
    3 = « Sortie définitive du titulaires du poste »
    4 = « Surcroit temporaire d’activité »

    Je te remercie encore :)

    #66639
    bebarth
    Maître des clés

    …et du coup, ça fonctionne ?
    Juste une petite remarque : il faudrait écrire « Surcroît ».
    @+
    :bonjour:

    #66640
    LolaRMC
    Membre

    Bonjour,
    Ça ne marche pas pour les boutons CDD et Intérim.

    Je voudrais qu’apparaisse les motifs « Vide », « Remplacement agent absent » et « Surcroît temporaire d’activité ».

    Et avec le script que j’ai mentionné juste avant provenant du fichier que tu m’as transmis, c’est les motifs « Vide », « Création de poste » et « Remplacement agent absent » qui s’affichent.
    J’ai essayé d’enlever la partie « par défaut » dans le script et de préciser les motifs pour chaque case 1, 2, 3  et 4  mais ça ne change rien.
    Merci encore

    #66641
    Merlin
    Maître des clés

    tu dis que tu l’as mis en « fonction dans un script de document » mais mon peu d’expérience ne sait pas ce que c’est

    Il faut que tu lises cet article : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/les-differents-niveaux-dutilisation-des-scripts-javascript/
    :Smiley15:

    #66642
    LolaRMC
    Membre

    D’accord merci je l’ai lu.
    A ce que je comprend je ne peux pas modifier « javasciptement » le script sans « l’autorisation explicite de l’utilisateur »
    Je te met en pièce jointe la où j’ai enregistré le script et cela me semble, en vue des titre, être le bon emplacement des scripts de document.
    En revanche, j’ai l’impression que le problème vient du script en lui même car dans le document que tu m’as transmis les données ne sont pas bonnes dans la liste déroulante pour les CDD et Intérim. (cf : pièce jointe)

    #66643
    Merlin
    Maître des clés

    A ce que je comprend je ne peux pas modifier « javasciptement » le script sans « l’autorisation explicite de l’utilisateur »

    Je ne comprend pas.  :Euuuh:  :doute:
    Que veut dire « modifier Javascriptement » ?
    Qu’est-ce que l’avis de l’utilisateur vient faire là ?

    Je te met en pièce jointe là où j’ai enregistré le script et cela me semble, au vu des titres, être le bon emplacement des scripts de document.

    C’est bien ça.

    En revanche, j’ai l’impression que le problème vient du script en lui même car dans le document que tu m’as transmis les données ne sont pas bonnes dans la liste déroulante pour les CDD et Intérim.

    Je laisse bebarth te répondre, concernant les switch et les array c’est lui le boss.  :joker:

    #66644
    bebarth
    Maître des clés

    Je ne suis pas dispo aujourd’hui, désolé !
    @+
    :bonjour:

    #66645
    LolaRMC
    Membre

    Je ne comprend pas.  :Euuuh: :doute:
    Que veut dire « modifier Javascriptement » ?
    Qu’est-ce que l’avis de l’utilisateur vient faire là ?

    Cest dans le lien que m’a transmis bebarth :
    « 
    3- Script de document Privilèges restreints.

    Comme il peut être exécuté à l’ouverture de n’importe quel PDF téléchargé n’importe où par n’importe quelle grand-mère ou n’importe quel directeur ce type de script à des droits beaucoup plus restreints, par exemple il est impossible de modifier ou d’enregistrer javascriptement un fichier, PDF ou autre, sans l’autorisation explicite de l’utilisateur. »

    Je me disais que peut être mon blocage venait de la.

    @bebarth, pas de soucis, je te remercie déjà de ton aide et de ta patience, c’est vrai que tout ça n’est pas très intuitif pour moi. Merci

    #66646
    Merlin
    Maître des clés

    par exemple il est impossible de modifier ou d’enregistrer javascriptement un fichier, PDF ou autre, sans l’autorisation explicite de l’utilisateur.

    L’expression est peut-être malheureuse, il faut lire « programmatiquement ».

    Je me disais que peut être mon blocage venait de là

    Non, bebarth ne tomberait pas dans un piège aussi grossier.  :tutut:  :geek:
    De toute façon la Console te préviendrait, voir : https://www.abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/console-javascript-d-acrobat/

    #66647
    bebarth
    Maître des clés

    bonsoir,
    Il y avait effectivement une erreur dans le script, il faut écrire :

    Code:

    for (var i=0; i

    Ci-joint un nouveau fichier légèrement modifié.
    @+
    :bonjour:

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