【发布时间】:2012-03-27 20:32:34
【问题描述】:
我正在开发一个块模块,并希望在通过 managed_file 字段上传文件时对其配置表单执行 ajax 操作。
所以当 managed_file 隐藏字段改变时(一旦文件上传成功),就会有一个 ajax 回调。 ajax 是这样调用的:
function updateVideo($action){
(function ($) {
$.ajax({
url: '/block_video/update_video', // drupal menu path
dataType: 'json',
type: 'POST',
data: { 'action' : $action },
success: function(data){
// @ TODO
}
});
})(jQuery);
}
上面注册的drupal路径(/block_video/update_video)调用一个函数,我想在其中检索块配置$form_state变量及其当前状态(不是初始状态)。是否可以在不直接使用javascript且不调用页面刷新的情况下查看当前的块配置表单状态?
对我来说,只使用 managed_file 上的“#ajax”属性会更简单,但它没有。所以我通过等待 managed_file 隐藏元素上的值更改添加了上面的 ajax 回调,这部分正在工作(使用这里描述的方法http://forum.jquery.com/topic/adding-a-change-event-on-a-hidden-field)。
我应该能够在我的自定义 ajax 回调中检索 $form_state。我想按照 FAPI [#ajax][callback] 的方式来做($form 和 $form_state 都传递给回调参数 - 我只需要将当前的 $form_state 传递给我的回调或在其中访问) ,我不知道 Drupal 是如何做到的。
【问题讨论】:
标签: ajax forms drupal callback drupal-7