首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Drupal中通过AHAH传递参数

在Drupal中通过AHAH传递参数
EN

Stack Overflow用户
提问于 2011-09-01 15:46:15
回答 1查看 637关注 0票数 0

Drupal 6.22

我有一个空页面,除了一个表单,它接受两个输入值,当提交时,必须显示基于该输入值的查询结果。结果可以显示在新窗口中,也可以显示在同一页上,唯一的要求是表单仍然很容易访问。我已经尝试过使用AHAH来实现这一点,但是我还没有找到一种发送输入的方法。

这就是我现在所拥有的:

代码语言:javascript
复制
function somemodule_menu()
{
    $items['somemodule/js'] = array(
        'page callback' => 'somemodule_js',
        'access arguments' => array('access content'),
        'type' => MENU_CALLBACK,
    );

    return $items;
}

function somemodule_form()
{
    $form = array();
    $format = 'd/m/Y';
    $default = 'Y-m-d 00:00:00';

    $form['from'] = array(
        '#type' => 'date_popup',
        '#title' => t('From'),
        '#default_value' => date($default),
        '#date_format' => $format,
        '#required' => TRUE
    );

    $form['to'] = array(
        '#type' => 'date_popup',
        '#title' => t('To'),
        '#default_value' => date($default, mktime(0, 0, 0, date('n') + 6)),
        '#date_format' => $format,
        '#required' => TRUE
    );

    $form['submit'] = array(
        '#type' => 'submit',
        '#value' => t('Send'),
        '#ahah' => array(
            'path' => 'somemodule/js',
            'wrapper' => 'entry-wrapper',
            'method' => 'replace',
            'progress' => array(
                'type' => 'bar',
                'message' => t('Please wait...')
            )
        )
    );

    return $form;
}

function somemodule_js()
{
    return drupal_json(array('status' => TRUE, 'data' => "some data"));
}

这将提交表单并将some data正确地插入到entry-wrapper中。我知道我可以进行以下更改:

代码语言:javascript
复制
function somemodule_menu()
{
    $items['somemodule/js/somevar'] = ...
}

function somemodule_form()
{
    ...
    $form['submit'] = array(
        '#ahah' => array(
            'path' => 'somemodule/js/wharrgarbl',
    ...
}

function somemodule_js($string)
{
    return drupal_json(array('status' => TRUE, 'data' => $string));
}

我会把wharrgarbl取回,但是静态值不能满足这一点。

有没有办法在第一次提交后从该函数中访问somemodule_form的表单状态,或者我是不是完全走错了路?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-09-12 06:37:27

我不知道我是怎么漏掉的,但是钩子形式的签名是hook_form(&$node, $form_state)。PHP的容错性有时会成为一种诅咒。无论如何,一个完全不相关的谷歌搜索结果是this question about multistep forms,这就是我最终要做的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7267378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档