Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Drupal 7 Hook_表单不工作_Drupal_Drupal 7_Multiple Forms_Hook Form - Fatal编程技术网

Drupal 7 Hook_表单不工作

Drupal 7 Hook_表单不工作,drupal,drupal-7,multiple-forms,hook-form,Drupal,Drupal 7,Multiple Forms,Hook Form,有人能告诉我为什么这不起作用吗 drupal_呈现(drupal_get_表单)在foreach循环中动态创建,并放入表主题中 除表单字段外,所有内容都将加载。我尝试过通过向每个表单函数调用添加echo和exit进行调试,但页面仍在继续加载。我不确定这些函数是否只是没有被调用,或者是否存在其他问题 foreach( $w as $k => $v ) { $r[] = array( '$'.number_format($v->amount, 2),

有人能告诉我为什么这不起作用吗

drupal_呈现(drupal_get_表单)在foreach循环中动态创建,并放入表主题中

除表单字段外,所有内容都将加载。我尝试过通过向每个表单函数调用添加echo和exit进行调试,但页面仍在继续加载。我不确定这些函数是否只是没有被调用,或者是否存在其他问题

foreach( $w as $k => $v ) {
    $r[] = array(
        '$'.number_format($v->amount, 2),
        date('F d, Y', $v->created),
        filter_xss($v->paypal_email),
        drupal_render(drupal_get_form(('toefl_tutors_admin_withdrawl_request_form_'.$v->id), $v->id))
    );
}


function toefl_tutors_admin_withdrawl_request_forms($form_id, $args) {
    $forms = array();

    if (!empty($args) && $form_id == 'toefl_tutors_admin_withdrawl_request_form_' . $args[0]) {
        $forms[$form_id] = array(
            'callback' => 'toefl_tutors_admin_withdrawl_request_form',
            'callback arguments' => array($args[0]),
        );
    }

    return $forms;
}


function toefl_tutors_admin_withdrawl_request_form($form, &$form_state, $id = 0) {

    $form['twid'] = array(
        '#type'     => 'hidden',
        '#value'    => $id
    );

    $form['submit'] = array(
        '#type'         => 'submit',
        '#value'        => t('Send Money'),
       '#attributes'    => array('class' => array('btn', 'btn-success'))
    );

    return $form;
}

我已经解决了这个问题

我需要将hook_forms函数重命名为toefl_tutors_forms(),因为我的模块名实际上是toefl_tutors而不是toefl_tutors_admin_drawrl_request

显然,如果我错了,请纠正我,为了使用hook_表单,您必须将其命名为mymodulename_表单,而不是mymodulename_xx_表单


让我困惑的是,当您将表单函数命名为mymodulename\u xx\u form()时,hook\u表单可以完美地工作。

Oh。我还需要在更改名称后清除缓存。