abracadabraPDF › Forums › PDF – Général › Scribus code JavaScript comment récupérer une valeur de liste déroulante
- Ce sujet est vide.
-
CréateurSujet
-
2 février 2017 à 10:04 #45586SonyaMembre
Bonjour,
Novice en javascript j’aurais besoin de votre aide.
Exposition du projet :
Création d’un formulaire interactif sous Scribus.
Alors voici mon souci, j’ai un champs liste déroulante de 0 à 30 créé tout simplement (sans renseignement de code) qui se nomme tables.
L’utilisateur peut choisir le nombre de tables au choix.
Puis j’ai créé un champs texte plus loin où je veux que la sélection faite par l’utilisateur dans la liste déroulante apparaisse sans que j’intervienne.
Pouvez vous m’aider ?
Merci -
CréateurSujet
-
AuteurRéponses
-
2 février 2017 à 10:08 #62158SonyaMembre
Pour plus de précision j’ai vu sur le forum ce fichier qui correspond à ce que je veux mais je ne sais pas quel code javascript je dois rentrer et où sur quel champs et dans quel onglet.
Bref je patauge :mur:
Merci2 février 2017 à 10:37 #62159MerlinMaître des clésBonjour et bienvenue.
Il faut placer cette ligne de JavaScript en Script de calcul sur mesure dans les Propriétés du champ texte.
Note bien que ce script importe la valeur de la liste déroulante, et non pas l’item affiché.Code:event.target.value = this.getField(“ListeDeroulante”).value;Où il faut remplacer “ListeDeroulante” par le vrai nom de la liste déroulante concernée.
2 février 2017 à 10:40 #62160bebarthMaître des clésbonjour,
…et voilà le fichier pour afficher les 2 valeurs !
Pour la valeur de la liste :
var i=this.getField(“ListeDeroulante”).currentValueIndices;
this.event.value=this.getField(“ListeDeroulante”).getItemAt(i,false);A éudier…
@+
:bonjour:2 février 2017 à 10:55 #62161MerlinMaître des clésBebarth : je vais garder ton doc. précieusement car je fais un blocage sur getItemAt et currentValueIndices. :geek:
Sonya : il ne devrait pas y avoir de “second” dans ta liste mais un “deuxième”. Car le second est aussi le dernier, on ne l’utilise que quand il n’y a que deux éléments.
:Smiley03:2 février 2017 à 11:01 #62162bebarthMaître des clésMerlin, tu peux garder le doc, j’en ai moi-même gardé plus d’un que tu as posté !
Par contre, j’ai pas grand chose au sujet des bébés phoques… :joker:
@+
:bonjour:2 février 2017 à 11:13 #62163MerlinMaître des cléset voilà le fichier pour afficher les 2 valeurs !
Comme Sonya travaille avec Scribus je suppose qu’elle n’a pas Acrobat Pro et que donc ce PDF ne lui sera pas très utile, faute de pouvoir l’examiner en profondeur…
:Smiley00:2 février 2017 à 11:46 #62164SonyaMembreRebonjour,
Oui Merlin je confirme que je ne vois pas en pdf les codes liés au javascript car j’ai scribus.
Je vous joins mon fichier réel avec mon souci en format scribus et en format export pdf.
Alors liste déroulante table je veux choisir en tant qu’utilisateur la quantité et dans champs texte à hauteur de la ligne montant de la caution à verser je veux voir le nombre choisi par l’utilisateur apparaître.
Pour l’instant j’ai mis le code sur la liste déroulante “tables” dans onglet propriétés du champs / onglet Calculer / script de calcul sur mesure / en indiquant : event.target.value = this.getField(“tables”).value;
Mais rien ne se passe.
Que dois-je mettre dans champ texte s’intitulant “caution_tables” ?Je vous joins copies d’écran pour être plus précise.
Merci d’avance pour votre aide précieuse.2 février 2017 à 11:59 #62165MerlinMaître des clésIl faut que tu places ce script (celui de bebarth, adapté) en script de calcul sur mesure dans le champ caution_tables :
Code:var i=this.getField(“tables”).currentValueIndices;
this.event.value=this.getField(“tables”).getItemAt(i,false);Mais ça donne le nombre d’éléments choisis, pas le montant de la caution…
2 février 2017 à 12:44 #62166SonyaMembre:Smiley01: :Smiley01: :Smiley01:merci beaucoup cela fonctionne top !
2 février 2017 à 15:50 #62167SonyaMembreRe
Je rencontre 2 nouveaux soucis :
1- lorsque je veux faire la somme de mes grilles en bas, il y a comme un décalage dans le temps pour le calcul il faut que je modifie une sélection de liste déroulante et la mise à jour se fait mais pas toujours ? Je joins pdf et copie écran pour visuel
2- mon total tables *25 + chaises * 10 + grilles * 15 ne s’effectue pas.
Merci d’avance pour votre aide encore une fois
2 février 2017 à 16:04 #62168MerlinMaître des clésil y a comme un décalage dans le temps pour le calcul il faut que je modifie une sélection de liste déroulante et la mise à jour se fait mais pas toujours
Un bug de ma version de Scribus m’empêche de voir le panneau Options des Propriétés des Listes déroulantes (il est vide…) mais il devrait y avoir une option du type “Valider la valeur sélectionnée immédiatement”, comme dans Acrobat.
:priere:2- mon total tables *25 + chaises * 10 + grilles * 15 ne s’effectue pas.
C’est normal, le script utilisé remplit une variable mais n’en fait rien d’autre. D’autre part on ne peut pas se contenter d’utiliser les noms de champs pour récupérer leur valeur.
Remplace :var cautions = “caution_tables”*25+”caution_chaises”*10+”caution_grilles”*15;Par :
var nTables = this.getField(“caution_tables”).value * 25;
var nChaises = this.getField(“caution_chaises”).value * 10;
var nGrilles = this.getField(“caution_grilles”).value * 15;
event.target.value = nTables + nChaises + nGrilles;Attention aussi à l’ordre de calcul !
Voir la 2e partie de cet article : http://abracadabrapdf.net/ressources-et-tutos/js-et-formulaires-ressources/lordre-dexecution-des-evenements-dans-les-champs-de-formulaire-pdf/3 février 2017 à 08:26 #62169SonyaMembreMerci bcp Merlin quelles compétences dans ce domaine.
Il va falloir que je travaille un peu, car très novice encore en java il faut l’avouer.Pour la validation de mon champs, j’ai cette fenêtre (jointe en fichier) mais cela signifie qu’il faut que je mette un peu de java ou autre fenêtre que celle-ci ?
Merci
3 février 2017 à 09:27 #62170MerlinMaître des clésil faut que je mette un peu de java
:tutut: ==> http://abracadabrapdf.net/forum/index.php/topic,2160.msg10980.html#msg10980
Peux tu poster une capture de la même fenêtre mais avec le panneau “Options” affiché ?
3 février 2017 à 10:13 #62171SonyaMembreVoici
3 février 2017 à 10:22 #62172MerlinMaître des clésLe panneau Options stp (celui que je ne peux pas voir dans mon Scribus).
:Smiley01:3 février 2017 à 11:27 #62173SonyaMembreDésolée voici
3 février 2017 à 12:02 #62174MerlinMaître des clésBen… J’ai la même… Remplie de vide… :Euuuh: :doute:
Comment fais tu pour remplir les valeurs de la liste déroulante avec une fenêtre vide ???À comparer avec la même fenêtre dans Acrobat.
3 février 2017 à 12:37 #62175SonyaMembreVoilà ma procédure :
3 février 2017 à 14:25 #62176MerlinMaître des clésJe viens d’apprendre quelque chose sur Scribus ! Merci parce-que j’aurais pu chercher longtemps… :geek:
Puisque l’option “Valider la valeur sélectionnée immédiatement” n’est pas disponible il faut utiliser la vieille ruse incontournable du temps d’Acrobat 5 et versions antérieures (qui n’offraient pas non plus cette option).
1. Il faut créer un tout petit champ de type texte dans un coin du document, appelons le “ruse”, et le rendre invisible.
2. Dans toutes les listes déroulantes il faut placer ce script en action “souris relevée” :
Code:this.getField(“ruse”).setFocus();Ce qui aura pour effet de tenter d’activer le champ “ruse” après chaque clic sur une liste. Ça ne sera évidemment pas du tout visuel ni très utile car il est invisible, mais on s’en fiche…
Parce-que ça a de toute façon pour conséquence de désactiver la liste cliquée et de forcer la validation immédiate de la valeur sélectionnée par l’utilisateur.
Et c’est justement ce qu’on veux.:Smiley15:
3 février 2017 à 15:20 #62177SonyaMembreTant mieux si j’ai pu vous apprendre quelque chose je suis contente.
Bon j’ai mis copie écran j’ai essayé les options bouton souris relâchée puis la 2 et 3 et jusqu’à sortie souris mais cela ne fonctionne pas correctement.
Dois-je poursuivre avec les 2 dernières.
Je mets l’exemple en pdf avec option sortie sourisMerci
3 février 2017 à 17:29 #62178MerlinMaître des clésEncore une fois j’aurais dû tester avant… La mémoire est faible. :oh:
Tu as mis le script en action “souris sortie” au lieu de “souris relevée”, mais en fait dans les deux cas ça empêche le menu déroulant de fonctionner.
Du coup tout ce que je peux te proposer c’est de finaliser ton formulaire avec Acrobat, juste pour cocher l’option “Valider la valeur sélectionnée immédiatement”.
:Smiley11:4 février 2017 à 08:52 #62179SonyaMembreBonjour,
Le problème c’est que je n’ai pas acrobat pro juste acrobat reader.
Bon je vais réfléchir. Peut être que je peux trouver une idée pour contourner ce problème.Merci
4 février 2017 à 10:41 #62180SonyaMembre:mur: dur dur je ne trouve pas comment faire !
4 février 2017 à 10:59 #62181MerlinMaître des clésAu moment de finaliser le formulaire tu pourras toujours installer la version d’essai d’Acrobat Pro (7 jours).
:Smiley03: -
AuteurRéponses
- Vous devez être connecté pour répondre à ce sujet.