用户配置文件上的Drupal AJAX按钮

时间:2014-01-01 21:45:46

标签: ajax forms button drupal

我一直想尝试添加AJAX按钮。我可以在表格上这样做:

function hook_form_alter(&$form, &$form_state, $form_id) {
$form['suspend'] = array(
            '#type' => 'button',
            '#name' => 'foo',
            '#value' => t('bar'),
            '#ajax'  => array('callback' => '_foo_bar'),
        );

return $form;
}

工作正常。但是我不能让它用于用户配置文件或非表单,如下所示:

function hook_user_view_alter(&$build) {
$build['suspend'] = array(
            '#type' => 'button',
            '#name' => 'foo',
            '#value' => t('bar'),
            '#ajax'  => array('callback' => '_foo_bar'),
        );

return $build;
}

有这么简单的方法吗?我使用块和&这个网站上的观点,如果可能的话,宁可不必安装面板(:

谢谢!

1 个答案:

答案 0 :(得分:2)

如果它不在表单中,请将其包装成表单:

function example_suspend_form($form, &$form_state) {
  $form['suspend'] = array(
    '#type' => 'button',
    '#name' => 'foo',
    '#value' => t('bar'),
    '#ajax'  => array('callback' => '_foo_bar'),
  );

  return $form;
}

function example_user_view_alter(&$build) {
  $build['example_suspend_form'] = drupal_get_form('example_suspend_form');
}