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éateurSujet
-
18 décembre 2019 à 14:11 #46185
LolaRMC
MembreBonjour.
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- 5Je 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 -
CréateurSujet
-
AuteurRéponses
-
18 décembre 2019 à 16:38 #66629
Merlin
Maître des clésBonjour 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 ?19 décembre 2019 à 08:42 #66630bebarth
Maître des clésbonjour,
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:19 décembre 2019 à 08:44 #66631LolaRMC
MembreBonjour,
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 fichier19 décembre 2019 à 12:09 #66632bebarth
Maître des clésCi-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:19 décembre 2019 à 13:05 #66633LolaRMC
MembreMerci 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 aide19 décembre 2019 à 13:59 #66634bebarth
Maître des clésDans 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:19 décembre 2019 à 14:01 #66635LolaRMC
MembreEn 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);”?19 décembre 2019 à 15:17 #66636LolaRMC
MembreAlors 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 demandeEt 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
19 décembre 2019 à 15:34 #66637bebarth
Maître des clésJ’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:19 décembre 2019 à 15:54 #66638LolaRMC
MembreOui 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
19 décembre 2019 à 16:32 #66639bebarth
Maître des clés…et du coup, ça fonctionne ?
Juste une petite remarque : il faudrait écrire “Surcroît”.
@+
:bonjour:20 décembre 2019 à 08:12 #66640LolaRMC
MembreBonjour,
Ç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 encore20 décembre 2019 à 08:37 #66641Merlin
Maître des cléstu 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:20 décembre 2019 à 10:19 #66642LolaRMC
MembreD’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)20 décembre 2019 à 10:47 #66643Merlin
Maître des clésA 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:
20 décembre 2019 à 11:13 #66644bebarth
Maître des clésJe ne suis pas dispo aujourd’hui, désolé !
@+
:bonjour:20 décembre 2019 à 12:43 #66645LolaRMC
MembreJe 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
20 décembre 2019 à 17:01 #66646Merlin
Maître des cléspar 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/20 décembre 2019 à 21:09 #66647bebarth
Maître des clésbonsoir,
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: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.