Drupal 7,drupal_get_form不显示提交按钮

时间:2013-10-30 20:51:13

标签: php drupal submit

我的表单中没有提交任何提交按钮。除了提交按钮之外,一切都在呈现。我尝试了很多东西,但显然不是正确的,或者我不会在这里。有人请指出我的愚蠢错误。

function output_string() {
    $role_raw = current_path();
    $role_string = ucwords(str_replace('-', ' ', $role_raw));
    $output = '<div class=\"fishingnetwork\">You are not currently a member of <span class=\"rolestring\">' . $role_string . '</span> Network.';
    $output .= '<br>Would you like to join this network?</div><br>';

    return $output;
}

function mps_role_select_block_form($form, &$form_state) {
    $form['network_role'] = array (
    '#type' => 'text',
    '#title' => 'Role ID',
    '#value' => 'myroleid'
    );
    $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Yes')
    );  
}

function mps_role_select_block_form_submit($form, &$form_state) {
    rules_invoke_event('user_selecting_network', current_path());   
}


/**
 * Implementation of hook_block_info()
 */


function mps_role_select_block_info() {
  // This example comes from node.module.
  $blocks['roleasking'] = array(
    'info' => t('Role Asking'),
    'cache' => DRUPAL_NO_CACHE,
  );

  return $blocks;
 }


/**
 * Implementation of hook_block_view()
 */

function mps_role_select_block_view($delta = '') {
  // This example is adapted from node.module.
  $block = array();

  switch ($delta) {
    case 'roleasking':
      $block['subject'] = t('Role Asking');
      $block['content'] = output_string() . drupal_render(drupal_get_form('mps_role_select_block_form'));
      break;

  }
  return $block;
}

1 个答案:

答案 0 :(得分:1)

在您的代码中,您尚未退回表单。但是,假设这是您发布问题时的复制粘贴问题 因为你说“$ form ['network_role']”也被渲染

以下事情可能是个问题 1)从表单返回$ form。如果你这样做,请执行以下操作。

2)打印(使用print_r()函数)并查看“drupal_render(drupal_get_form('mps_role_select_block_form'))”,如果它有sumbit按钮的html。

3)如果提交按钮的数组由drupal_get_form('mps_role_select_block_form')返回并且未呈现。 如果您使用自定义主题,则可能是主题中的问题。