Donnez vie à vos documents numériques !
 

Lien bouton radio et liste

abracadabraPDF Forums PDF – Général Lien bouton radio et liste

  • Créateur
    Sujet
  • #71426
    WilliS4R
    Participant

    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.
Affichage de 11 réponses de 26 à 36 (sur un total de 36)
  • Auteur
    Réponses
  • #71742
    WilliS4R
    Participant

    Merci 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 😱

     

    #71765
    bebarth
    Maître des clés
    bonjour,

    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).

    @+
    😎

    #71798
    destylast
    Participant

    Bonjour,

    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.
    #71810
    WilliS4R
    Participant

    Bonjour à 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.
    #71815
    bebarth
    Maître des clés

    bonjour,
    Si avec le menu champ4 tu veux remplir le champ5, il faut utiliser ton autre fonction.
    Donc if (!event.willCommit) affichage_1(event.target.name);

    @+
    😎

    #71816
    WilliS4R
    Participant

    Merci Bebarth pour ta réponse. Je tente et je vous dis si tout est ok.

    Bonne soirée,

    W

    #71831
    destylast
    Participant

    Bonjour,

    Voici ton fichier de repris vois si cela te va.

    Attachments:
    You must be logged in to view attached files.
    #71833
    WilliS4R
    Participant

    Bonjour,

    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,

    #71834
    bebarth
    Maître des clés
    bonjour,

    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 mois et 3 semaines par bebarth.
    • Cette réponse a été modifiée le il y a 2 mois et 3 semaines par bebarth.
    Attachments:
    You must be logged in to view attached files.
    #71839
    Merlin
    Maître des clés

    😍

    #71840
    destylast
    Participant

    bravo 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.

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