abracadabraPDF › Forums › PDF – Général › Lien bouton radio et liste
- Ce sujet contient 36 réponses, 4 participants et a été mis à jour pour la dernière fois par destylast, le il y a 2 années et 1 mois.
-
CréateurSujet
-
12 août 2022 à 15:30 #71426WilliS4RParticipant
Bonjour à tous,
Je suis un débutant sur Adobe pro et j’ai besoin de vos éclairages..
Après plusieurs tentatives de codage … je déclare forfait ! Help
Mon besoin :
J’ai une premiere liste déroulante liée avec une deuxième. Je souhaite après avoir selectionné la ligne dans la deuxième liste dérouante, le visualisé au travers d”un bouton radio qui est lié avec la liste dérouante du champ suivant.
1/ Sélection du champ 1–> Ça c’est OK
2/ Sélection du champ 2 lié –> Ça c’est OK
2/ Les boutons sont alors enfoncés
3/ depuis chaque bouton enfoncé, afficher un texte dans le champ 3 qui est une liste déroulante (pour chaque bouton)
Nota : je ne peux pas m’affranchir de l’étape 2 car les textes à insérer en champ 3 sont trop long et on atteint la limite de
l’éditeur… si je les mets dans l’éditeur du champ2.J’espère avoir été clair !
Mon fichier en pj
Merci par avance,
WR
Attachments:
You must be logged in to view attached files. -
CréateurSujet
-
AuteurRéponses
-
15 août 2022 à 16:04 #71428bebarthMaître des clés
bonjour,
Voici une possibilité, en script de calcul du champ3 :
if (this.getField("Champ2").value!="") {
this.getField("Metiers").value=this.getField("Champ2").value;
var liste=["- Choisissez -"];
for (var i=0; i<3; i++) liste.push(this.getField("Champ2").value+" - Élément "+(i+1));
} else {
var liste=[""];
this.getField("Metiers").value="Off";
}
event.target.setItems(liste);
Attention à ne pas mettre de caractères accentués dans le nom des champs !
Désolé pour les délais de réponse, mais je suis “ENCORE” (et toujours) en vacances jusqu’à fin août !
@+
😎Attachments:
You must be logged in to view attached files.15 août 2022 à 19:01 #71430WilliS4RParticipantBonjour,
Un grand merci pour cette réponse, surtout en période de vacances.
A la lecture du code proposé, je comprends que je n’ai pas été assez explicite.
Je reformule : Dans le premier champ, j’ai deux options “Technique” et “non technique”, Dans le second champ “champ2”, j’ai 12 métiers pour “Technique” et 6 métiers “non technique”. Pour chaque métier choisi dans le champ2, j’ai entre 60 et 80 caractérisations (par métiers) à afficher dans une liste déroulante (dans le champ 3) qui peuvent s’écrirent sur une à trois lignes.
Si je conserve, le code présent dans le champ 1 pour passer du champ2 au champ3, j’atteints les limites de caractères dans l’éditeur de script.
J’avais donc dans l’idée pour contourner cette limitation de créer les boutons (12+6) qui contiendraient chacune des lignes à afficher dans le champ3. Le boutons étant in fine masqué à l’utilisateur.
J’espère avoir été plus clair.
16 août 2022 à 18:02 #71431bebarthMaître des clésbonjour,
Ne serait-il pas judicieux d’envisager de placer toutes ces données dans une feuille de tableur (Excel par exemple) au format csv et de joindre le fichier au formulaire ?
@+
😎16 août 2022 à 21:01 #71432WilliS4RParticipantBonjour,
La solutions de joindre un .csv n’est hélas pas possible.
Après quelques itérations, j’ai réussi à faire apparaître la liste dans le champ 3, en écrivant les listes dans le script de document. Le problème de limitation est résolu.
Problème, si j’ai la bonne liste sélectionnée, je n’arrive pas à selectionner la ligne souhaitée. Il me manque un bout de code. J’avance…
La solution est-elle dans la prochaine réponse 🙂
MErci pour le temps passé à me lire.
Attachments:
You must be logged in to view attached files.17 août 2022 à 19:06 #71434MerlinMaître des clésBonjour
Dans le champ “champ3” tu as mis le script en script de calcul, il faut le placer en script de validation.
Attachments:
You must be logged in to view attached files.17 août 2022 à 20:14 #71436WilliS4RParticipantBonsoir,
Merci de prendre sur votre temps pour trouver une issue à mon besoin.
L’option proposée par Merlin, rend le pdf instable. Les réponses sont erronnées. Dans la V1, le cheminement est correct mais la prise en compte de la valeur dans le champ3 n’est pas effective. Je pense que les codes réalisés ne sont pas adaptés (trop de boucle if qui appelle des listes dans le script de document).
Existe-t-il une autre option de codage pour appeler mes listes présentes dans le scrip de document, avec un lien mere-fille (champ2-champ3)
A votre écoute,
W
Attachments:
You must be logged in to view attached files.18 août 2022 à 11:27 #71438MerlinMaître des clésJe rentre juste de vacances et je n’ai pas tout suivi.
Essaye d’adapter le document ci-joint, les listes sont constituées dans le script de document “Initialisation”.
Attachments:
You must be logged in to view attached files.18 août 2022 à 15:56 #71440bebarthMaître des clésbonjour,
C’est une bonne chose de mettre le code en script de validation, mais il faut dans ce cas le mettre pour “Champ2” et non pour “champ3″…
@+
😎Attachments:
You must be logged in to view attached files.18 août 2022 à 16:30 #71442WilliS4RParticipantBonsoir à vous,
Les itérations se poursuivent 😏.
Le code communiqué par Merlin est fonctionnel mais vu la longueur des listes, le temps de latence est trop long. Je vous remets le pdf avec les codes qui me permettent d’aller jusqu’à l’affichage dans caractérisation, mon seul problème est son activation dans ce champ.
Je renouvelle toute ma gratitude pour vos conseils avisés et votre disponibilité.
BW.
Attachments:
You must be logged in to view attached files.18 août 2022 à 16:33 #71444WilliS4RParticipantPour information, je n’ai aucune latence pour afficher toutes les listes (déjà chargée dans ma version de travail).
18 août 2022 à 17:59 #71445bebarthMaître des clésAs-tu vu ma dernière réponse ?
En ce qui me concerne il faudra attendre le 30 août pour une réponse plus approfondie… mais je ne sais pas s’il est très judicieux d’avoir un menu déroulant avec 80 éléments !
@+
😎18 août 2022 à 20:16 #71446WilliS4RParticipantJe commencerai par un énorme Mea culpae 🙂
J’ai dû mal tester la proposition envoyée par Bebarth, ce matin au boulot….
Car at home, elle fonctionne parfaitement ! Je testerai demain matin en grandeur nature (cad avec toutes les listes 🙂 .Mais, je suis très confiant !
A la lecture des nombreux postes, j’avais la certitude que vous seriez d’excellents conseils. Bravo à vous deux ! J’aimerai pouvoir vous remercier : l’adresse indiquée sur votre site est bien d’actualité ?
Je cloturerai demain ce poste si tout est ok. Ce soir, je suis heureux ! c’est grâce à vous !
NB : Je l’accorde les listes sont hélas trop longues mais c’est une donnée d’entrée. Je pense que les utilisauteurs finaux devraient revoir ça 🙂
19 août 2022 à 14:08 #71447WilliS4RParticipantBonjour,
Les tests ont été réalisés avec succès sur le pdf réel avec toutes les listes ( 20 contenant chacune 10 à 80 lignes…) … Ça marche parfaitement et sans lag 🙂
Un grand merci !
Dossier clos.
19 août 2022 à 21:40 #71448MerlinMaître des clés👍
2 novembre 2022 à 10:32 #71719WilliS4RParticipantBonjour Messieurs,
Encore et toujours besoin de vos éclairages 🙂
Je croyais mon problème réglé depuis longtemps sur le lien entre les listes déroulantes grace au dernier formulaire (cf. pj ). Mais après exploitation de mon formulaire, je me rends compte que les choix faits dans les listes déroulantes ne sont pas pris en compte à l’enregistrement du formulaire. Manquerait-il une ligne de code ?
Merci par avance pour votrez aide précieuse
William,
Attachments:
You must be logged in to view attached files.2 novembre 2022 à 11:21 #71721destylastParticipantBonjour,
je viens de faire un test et cela fonctionne seulement avec la liste déroulante “NON TECHNIQ” et pas en totalité je pense que cela viens de ton champ1(script)
2 novembre 2022 à 13:48 #71725WilliS4RParticipantHello,
Après relecture de nombreux échanges (merci encore à Bebarth et Merlin :)), j’ai corrigé le formulaire. Merci beaucoup,
A toutes fins utiles, le fichier en pj. opérationnel !
Attachments:
You must be logged in to view attached files.2 novembre 2022 à 14:09 #71727destylastParticipantje confirme tout fonctionne bien 👍
2 novembre 2022 à 16:08 #71728WilliS4RParticipantJ’ai été trop vite 🙁
Ca ne marche pas !
Je repars du fichier en pièce jointe,
Pourriez-vous m’aider pour trouver une solution pour conserver les données saisies lors de l’enregistrement
Attachments:
You must be logged in to view attached files.2 novembre 2022 à 17:12 #71730destylastParticipantje pense que cela viens de ta boucle car il ne prends en compte que le premier choix de chaque liste.
2 novembre 2022 à 17:58 #71732bebarthMaître des clésbonjour,
Désolé, mais pour l’instant après un essai rapide, je ne comprends pas ce qui ne fonctionne pas…@+
😎2 novembre 2022 à 18:21 #71733WilliS4RParticipantPeut-être un éclairage pour les experts, dans le fichier BB-1; lorsqu”on saisit l’item dans le champ1 deux fois d’affilée , ça à l’air de fonctionner…
Je m’en remets à votre expertise 🙂
2 novembre 2022 à 20:30 #71738bebarthMaître des clésJe re-regarderai demain car pour l’instant je ne comprends toujours pas !
Qu’est-ce qui devrait se passer et qui ne fonctionne pas ???@+
😎3 novembre 2022 à 10:27 #71739WilliS4RParticipantBonjour,
Pour répondre à Bebarth. Quand on sélectionne le champ 1 puis 2 et 3, et qu’on enregistre le fichier. Si on le réouvre les choix faits précédemment ne sont pas pris en compte 🙁.
3 novembre 2022 à 13:17 #71740MerlinMaître des clésC’est parce-que les listes sont initialisées à l’ouverture du document, donc réinitialisées à chaque ouverture du document.
Il faut soit placer l’initialisation des listes sous condition, soit utiliser un bouton ou autre action pour les initialiser.
3 novembre 2022 à 14:11 #71742WilliS4RParticipantMerci pour cette approche, on constate que seul le champ 1 est mémorisé. Pour initialiser j’ai bien un bouton reset avec le cola fonction this.resetorm().
Mais je ne connais pas comment empêcher l’ initialisation des champs 2 et 3.
Help 😱
3 novembre 2022 à 21:03 #71765bebarthMaître des clésbonjour,C’est parce-que les listes sont initialisées à l’ouverture du document, donc réinitialisées à chaque ouverture du document.
Le script Champ1 est placé en validation donc exécuté à l’ouverture du document.
Je reconnais ce script et me semble que je l’avais adapté d’après un que tu m’avais fourni. Personnellement je n’écris pas tout à fait comme ça…
Ce weekend, j’essayerai de le réécrire à ma manière en script de touches personnalisé (c’est comme ça que je fais d’habitude).@+
😎7 novembre 2022 à 10:45 #71798destylastParticipantBonjour,
Voici ton fichier de repris et tout fonctionne grâce en grande parti a bebarth un très grand aide même indispensable.
Attachments:
You must be logged in to view attached files.7 novembre 2022 à 17:35 #71810WilliS4RParticipantBonjour à tous,
Ca marche ! super top !
Je suis très heureux que vous ayez pu résoudre le problème. Mon formulaire est quasi finalisé. J’ai souhaité réutilisé la logique mis en place pour d’autres champs dans mon formulaire qui appelent la même logique de menu déroulant (avec les mêmes menus déroulants). Hélas, je me suis cassé les dents toute l’après-midi. Il semble que la fonction “event.WillCommit” sur d’autres champs impacte le code…
Désolé pour mon faible niveau :). Même si je progresse, je suis encore loin d’être autonome 🙂
En pièce jointe, le code que j’ai tenté de mettre à jour.
C’est ma dernière requête promis !
W
Attachments:
You must be logged in to view attached files.7 novembre 2022 à 18:37 #71815bebarthMaître des clésbonjour,
Si avec le menu champ4 tu veux remplir le champ5, il faut utiliser ton autre fonction.
Doncif (!event.willCommit) affichage_1(event.target.name);
@+
😎7 novembre 2022 à 18:46 #71816WilliS4RParticipantMerci Bebarth pour ta réponse. Je tente et je vous dis si tout est ok.
Bonne soirée,
W
8 novembre 2022 à 09:20 #71831destylastParticipantBonjour,
Voici ton fichier de repris vois si cela te va.
Attachments:
You must be logged in to view attached files.8 novembre 2022 à 10:00 #71833WilliS4RParticipantBonjour,
Un grand bravo. Aujourd’hui, vous avez fait un homme heureux 👌.
C’est juste parfait.
Un très grand merci pour votre disponibilité et l’attention portée à mon problème.
Bonne journée,
8 novembre 2022 à 11:57 #71834bebarthMaître des clésbonjour,Un grand bravo. Aujourd’hui, vous avez fait un homme heureux 👌.
Certaines fois, il suffit de pas grand chose !
C’est juste parfait.
C’est exact !
En me relisant, je viens de m’apercevoir que la variable “menuDeroulant” de l’exemple précédent ne sert à rien… J’avais certainement dû modifier mon script et oublié de la retirer de la fonction !
Du coup la fonction s’écrit :
function affichage() {
this.getField("champ2").display=display.visible;
switch (event.changeEx) {
case "0":
var leMenu=[
["-SELECTIONNER-",0],
["Métier3",["-SELECTIONNER-","Cheval","Chien"]],
];
break;
case "1":
var leMenu=[
["-SELECTIONNER-",0],
["Métier1",["-SELECTIONNER-","Maison","Balcon"]],
["Métier2",["-SELECTIONNER-","Maison","Voiture"]],
];
break;
default:
var leMenu=[""];
this.getField("champ2").display=display.hidden;
this.getField("champ3").display=display.hidden;
}
this.getField("champ2").setItems(leMenu);
}
et pour l’appeler :
if (!event.willCommit) affichage();
Maintenant, si on veut approfondir l’apprentissage en JavaScript, on peut n’utiliser qu’une seule fonction avec plusieurs variables.
Ici le script n’est pas très long ce n’est donc pas très grave, mais s’il l’était ce serait plus intéressant.
Si par exemple le contenu des menus déroulants est identique, on peut écrire :
// Fontion à 2 variables
function affichage(menuDeroulant2,menuDeroulant3) {
this.getField(menuDeroulant2).display=display.visible;
switch (event.changeEx) {
case "0":
var leMenu=[
["-SELECTIONNER-",0],
["Métier3",["-SELECTIONNER-","Cheval","Chien"]],
];
break;
case "1":
var leMenu=[
["-SELECTIONNER-",0],
["Métier1",["-SELECTIONNER-","Maison","Balcon"]],
["Métier2",["-SELECTIONNER-","Maison","Voiture"]],
];
break;
default:
var leMenu=[""];
this.getField(menuDeroulant2).display=display.hidden;
this.getField(menuDeroulant3).display=display.hidden;
}
this.getField(menuDeroulant2).setItems(leMenu);
}
// Script pour champ1
if (!event.willCommit) affichage("champ2","champ3");
// Script pour champ4
if (!event.willCommit) affichage("champ5","champ6");
Une seule fonction commune et les 2 variables sont définies lorsqu’on appelle cette fonction…@+
😎- Cette réponse a été modifiée le il y a 2 années et 1 mois par bebarth.
- Cette réponse a été modifiée le il y a 2 années et 1 mois par bebarth.
Attachments:
You must be logged in to view attached files.8 novembre 2022 à 12:20 #71839MerlinMaître des clés😍
8 novembre 2022 à 12:31 #71840destylastParticipantbravo je n’ai pas de mot 👍 après pas simple d’avoir un code propre au début quand on débute mais pour moi avant tout est que cela soit fonctionnel même si le code est limite.
-
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.