用户配置文件上的Drupal AJAX按钮 [英] Drupal AJAX button on user profile

查看:146
本文介绍了用户配置文件上的Drupal AJAX按钮的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在尝试添加AJAX按钮一段时间。我可以在表单上这样做:

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

return $ form;
}

正常工作。但是,我无法让它在用户配置文件或非表单上工作,如下所示:

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

return $ build;
}

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



谢谢!

解决方案

如果它不在表单中,则将其包装成一个形式:

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

return $ form;
}

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


I've been trying to add AJAX buttons for a while. I am able to do it on forms, like this:

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;
}

working fine. However I cannot get it to work on user profiles or non-forms, like this:

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

return $build;
}

Are there simple ways of doing this? I use blocks & views on this site and would rather not have to install Panels if possible (:

Thanks!

解决方案

If it's not inside a form, wrap it into a form:

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');
}

这篇关于用户配置文件上的Drupal AJAX按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆