Drupal表单API-提交时显示表单值
我已经阅读了DrupalAPI表单文档,但有些东西我还没有理解。这可能真的很简单,但我不知道如何在表单提交后显示表单的提交值 *编辑代码Drupal表单API-提交时显示表单值,drupal,forms,drupal-6,Drupal,Forms,Drupal 6,我已经阅读了DrupalAPI表单文档,但有些东西我还没有理解。这可能真的很简单,但我不知道如何在表单提交后显示表单的提交值 *编辑代码 <?php function createForm_enigmaFilters($form_state) { $form = array(); $form['#submit'][] = 'createForm_enigmaFilters_submit'; $form['list'] = array( '#ty
<?php
function createForm_enigmaFilters($form_state) {
$form = array();
$form['#submit'][] = 'createForm_enigmaFilters_submit';
$form['list'] = array(
'#type' => 'markup',
'#prefix' => '<ul id="enigmaFilters">',
'#suffix' => '</ul>',
);
$form['list']['startDate'] = array(
'#id' => 'txtStartDate',
'#weight' => '0',
'#type' => 'textfield',
'#size' => '20',
'#title' => 'Date de début',
'#prefix' => '<li>',
'#suffix' => '</li>',
);
$form['list']['endDate'] = array(
'#id' => 'txtEndDate',
'#weight' => '1',
'#type' => 'textfield',
'#size' => '20',
'#title' => 'Date de fin',
'#prefix' => '<li>',
'#suffix' => '</li>',
);
$form['list']['enigmaName'] = array(
'#id' => 'txtEnigmaTitle',
'#weight' => '2',
'#type' => 'textfield',
'#size' => '100',
'#title' => 'Nom des énigmes',
'#prefix' => '<li>',
'#suffix' => '</li>',
);
$form['list']['lstAnswers'] = array(
'#id' => 'lstAnswers',
'#weight' => '3',
'#default_value' => 'Uniquement les bonnes',
'#key_type' => 'associative',
'#type' => 'select',
'#options' => array(
'Toutes les réponses' => 'Toutes les réponses',
'Uniquement les bonnes' => 'Uniquement les bonnes',
),
'#multiple_toggle' => '1',
'#title' => 'Réponses',
'#prefix' => '<li>',
'#suffix' => '</li>',
);
$form['list']['promotionYear'] = array(
'#id' => 'txtPromotionYear',
'#weight' => '4',
'#type' => 'textfield',
'#size' => '40',
'#title' => 'Année de promotion',
'#prefix' => '<li>',
'#suffix' => '</li>',
);
$form['list']['submit'] = array(
'#id' => 'lnkApplyFilters',
'#weight' => '5',
'#type' => 'submit',
'#value' => t('Rechercher'),
'#prefix' => '<li>',
'#suffix' => '</li>',
);
return $form;
}
function createForm_enigmaFilters_submit($form, &$form_state) {
echo $form_state['values']['startDate'];
echo $form_state['values']['endDate'];
echo $form_state['values']['enigmaName'];
echo $form_state['values']['lstAnswers'];
echo $form_state['values']['promotionYear'];
}
echo drupal_get_form('createForm_enigmaFilters');
?>
drupal\u get\u表单应该调用createMyForm 要使createMyForm_提交工作,您需要执行以下操作
$form['#submit'][] = 'createMyForm_submit';
以你的形式。这将向表单添加回调
但您也应该坚持drupal编码实践,以最大限度地提高API的效率。据我所知,您不会看到该API的输出,尽管它将短暂存在,因为表单在调用提交处理程序后将重定向到同一页面-如果没有,您将看到表单两次,因为您在提交处理程序中打印表单,以及在应用程序中打印表单的任何位置第一名 我建议你放松一下
echo drupal_get_form('createForm_enigmaFilters');
并将您的其他呼叫切换到echo,例如:
这意味着您的消息将在下次实际显示页面时显示-即在调用提交挂钩之后
让我知道这是否令人困惑/不起作用:我所做的只是使用argx,其中x是顺序中的文件夹编号。但这可能并不总是理想的。您的输出是什么?请尝试改用print\r$myform。调用“createMyForm”是一个输入错误,对此表示抱歉。我用submit回调更新了代码,但提交后仍然没有显示值。drupal\u set\u消息非常有效,谢谢!然而,我不认为我可以在我的上下文中使用它。我想使用表单的输入作为动态SQL查询的过滤器。这样,在submit回调函数中,我将调用自定义BuildAndDisplaystartdate、endate等函数,将提交的值作为参数,并在重新加载时显示查询结果。你知道我该怎么做吗?顺便说一下,非常感谢你的帮助,非常感谢!好的,drupal_set_消息只是用于显示值,以便您可以看到它们被正确提交。为了使一个页面显示您的结果,您通常需要重新定向到另一个页面,该页面将包含您的查询和生成显示的代码。所以你可以把drupal_goto'mypage/'.$form_state['values']['startDate']之类的东西放进去。。。。有一个谷歌。虽然听起来风景可能是你前进的方向,现在我知道多一点。酷,我要试试这个。每个人都告诉我,视图将是一种方式,我知道这一点,但我是如此的初学者,以至于我无法创建一个返回与复杂SQL查询相同内容的视图。但我想这是另一个故事。再次感谢!
drupal_set_message('start date: '.$form_state['values']['startDate']);