首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对公开的表单筛选器的视图进行Ajax回调

对公开的表单筛选器的视图进行Ajax回调
EN

Drupal用户
提问于 2020-10-05 14:41:37
回答 1查看 917关注 0票数 0

我正在尝试将#ajax回调方法添加到视图公开的表单筛选器复选框中。但是,该表单似乎对回调有一些问题。我的代码很简单

代码语言:javascript
复制
/**
 * Implements hook_form_FORM_ID_alter() for views_exposed_form.
 */
function mymodule_form_views_exposed_form_alter(&$form, FormStateInterface $form_state) {
  if ($form['#id'] == 'views-exposed-form-viewid') {
    $op = ['hi' => 'hi', 'all' => 'all'];
    $form['test'] = [
      '#type' => 'select',
      '#name' => 'test',
      '#empty_option' => 'none',
      '#options' => $op,
      '#ajax' => [
        'callback' => '_my_call',
        'event' => 'change',
        'wrapper' => 'edit-output-test',
        'progress' => [
          'type' => 'throbber',
        ],
      ],
    ];

    $form['callfield'] = [
      '#type' => 'select',
      '#options' => [],
      '#prefix' => '',
      '#suffix' => '',
    ];
  }
}

function _my_call(array &$form, FormStateInterface $form_state) {
  $response = new AjaxResponse();
  $message = 'test';
  $response->addCommand(new HtmlCommand('#edit-output-test', $message));
  return $response;

}

当我试图从视图编辑屏幕中更改“测试”复选框时,我会得到以下错误

"Symfony\Component\HttpKernel\Exception\HttpException:指定的#ajax回调为空或不可调用。在Drupal\Core\Form\FormAjaxResponseBuilder->buildResponse()中( /var/www/mypoc/docroot/core/lib/Drupal/Core/Form/FormAjaxResponseBuilder.php)."的第67行)

当我从前端更改过滤器时,我会得到以下错误

“发生了不可恢复的错误。上传的文件可能超过此服务器支持的最大文件大小(32 MB)。”

我看到很多类似的问题-

Ajax回调不适用于公开的视图筛选器

Ajax提交导致=>发生不可恢复的错误。上载的文件可能超过此服务器支持的最大文件大小(2MB)。

任何有用的例子都会很棒!谢谢。

EN

回答 1

Drupal用户

发布于 2020-10-05 16:43:36

听起来好像有一个正在进行的核心问题队列- https://www.drupal.org/project/drupal/issues/2842525

在应用补丁- https://www.drupal.org/files/issues/2020-03-27/2842525-83.patch之后,这似乎是可行的。

票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/297198

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档