【发布时间】:2011-09-01 07:46:15
【问题描述】:
Drupal 6.22
我有一个空页面,除了一个接受两个输入值的表单,并且在提交时,必须显示基于此的查询结果。结果可以显示在新窗口或同一页面上,唯一的要求是表单仍然易于访问。我尝试使用 AHAH 来实现这一点,但我还没有找到发送输入的方法。
这就是我现在拥有的:
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。我知道我可以进行以下更改:
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 的表单状态,还是我完全错误的方式?
【问题讨论】:
标签: drupal drupal-6 drupal-modules