使用onclick在Yesod中调用Haskell函数

时间:2015-01-02 20:40:05

标签: haskell yesod

是否有可能使用“onclick”设置在Yesod中调用Haskell函数?

我想要调用的函数:

save_all :: WidgetT App IO[()] save_all = mapM save_cur_answers (exam_questions exam_1)

save_cur_answers :: Question -> WidgetT App IO()
save_cur_answers quest = do
q_box1 <- runInputPost $ ireq checkBoxField (answer_id ((answer_list quest) !! 0))
q_box2 <- runInputPost $ ireq checkBoxField (answer_id ((answer_list quest) !! 1))
q_box3 <- runInputPost $ ireq checkBoxField (answer_id ((answer_list quest) !! 2))
q_box4 <- runInputPost $ ireq checkBoxField (answer_id ((answer_list quest) !! 3))

setSession (question_id quest) $ bool_to_cookie [q_box1, q_box2, q_box3, q_box4]

<input type="radio" onclick="save_all" name="tabs" id="tab#{question_id quest}">

我想获取所有复选框的结果,并在每次单击单选按钮时将其保存在cookie中。 save_cur_answers使用唯一的answer_id查找复选框,返回Bool值并存储其中的所有4个。

1 个答案:

答案 0 :(得分:0)

不直接以你描述的方式。你可以让onclick使用一些Javascript来进行AJAX调用,这将触发一个处理函数来运行。