2013-02-02 2 views
2

J'utilise le cadre en bande d'azote erlang pour développer une application.Récupération de la sélection par #dropdown dans un cadre en azote

Il me manque quelque chose de vraiment simple, mais je n'arrive pas à comprendre comment récupérer la sélection faite par un élément #dropbox. Il ne semble pas être passé par le message de publication. Est-ce qu'il faut peut-être utiliser la fonction wf: wire/3?

Je n'ai vu aucune documentation ou aucun exemple démontrant cela. Les seuls exemples que je peux trouver vont juste montrer la valeur de publication qui ne donne aucune information sur l'option qui a été sélectionnée.

Répondre

1

Vous devez:

  • ajouter un html_name à la dropbox,
  • code ajouter à soumettre votre formulaire,
  • puis dans la page appelée (définie dans l'action présenter), vous pouvez accéder à la valeur avec wf: m (dropbox_name).

il un exemple complet à http://nitrogenproject.com/demos/restful

+0

Merci. C'est juste ce dont j'avais besoin. – redrover

1

Cela dépend de la façon dont vous utilisez le menu déroulant. Si vous l'utilisez dans une forme reposante de forme «traditionnelle» non-ajax, alors les éléments reposants mentionnés par Pascal sont la voie à suivre. Cependant, si vous les utilisez en utilisant la fonctionnalité de publication de Nitrogen, vous voulez simplement les définir avec l'identifiant Nitrogen plus standard.

body() -> 
    [ 
     #dropdown{id=fruit, options=[ 
      #option{text="Apple"}, 
      #option{text="Banana"}, 
      #option{text="Orange"} 
     ]}, 
     #button{text="Submit",postback=do_fruit} 
    ]. 

event(do_fruit) -> 
    SelectedFruit = wf:q(fruit), 
    wf:wire(#alert{text="Selected Fruit was " ++ SelectedFruit}). 

Remarque, l'id de la liste déroulante est fruit. Le #button initie une publication avec la valeur do_fruit, qui correspond à la fonction event(do_fruit), et wf:q(fruit) récupère la valeur de la soumission avec l'ID fruit.

+0

Merci c'est comme ça que j'espérais que ça marcherait. Je n'ai pas compris que c'était là que la fonction wf: q/1 devait être utilisée. Dans mon cas, j'utilise maintenant l'option de publication dans le #dropdown lui-même. – redrover

+0

Excellent. Ravi de l'entendre. Les éléments RESTful sont excellents, mais pour * la plus * utilisation de l'azote, les postbacks combinés avec 'wf: q/1' et ses variantes (' wf: qs', 'wf: mq',' wf: mqs' et 'wf: q_pl') sont le chemin à parcourir. – chops

Questions connexes