Drupal表单API-提交时显示表单值

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

我已经阅读了DrupalAPI表单文档,但有些东西我还没有理解。这可能真的很简单,但我不知道如何在表单提交后显示表单的提交值

*编辑代码

<?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']);