我正在尝试将#ajax回调方法添加到视图公开的表单筛选器复选框中。但是,该表单似乎对回调有一些问题。我的代码很简单
/**
* 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提交导致=>发生不可恢复的错误。上载的文件可能超过此服务器支持的最大文件大小(2MB)。
任何有用的例子都会很棒!谢谢。
发布于 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之后,这似乎是可行的。
https://drupal.stackexchange.com/questions/297198
复制相似问题