Drupal 8模块 - 如何使用AJAX?

时间:2017-01-08 11:39:26

标签: jquery ajax drupal drupal-8

我正在尝试在我的Drupal 8模块中使用AJAX(使用jQuery),以便在用户在文本字段中键入内容时重新加载页面。 我设法得到一个完整的HTML页面,但我希望AJAX函数只获取页面的内容(没有整个布局)。

我怎样才能实现这一目标?当请求使用AJAX时,我应该在控制器函数中更改什么才能呈现不同的视图?

我在谷歌和Drupal 8文档上搜索过,但我没有找到任何问题的答案。

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

您可以在AJAX回调函数中返回数据,如下所示。

$build[] = array(
    '#type' => 'markup',
    '#markup' => '<p>Demo text content</p>',
);
return new Response(render($build));

确保包含Response类

use \Symfony\Component\HttpFoundation\Response;

答案 1 :(得分:-3)

您可以创建一些ajaxAction请求返回的视图,您将追加或将以这种方式重新定义页面:

$.ajax({
  type:  'GET',
  url:   'ajaxContent.php?action=get&pageId=777',
  cache: false
}).done(function( receivedHtml ) {
  $("#targetBlock").html(receivedHtml);
});

这是通过url在ajaxContent控制器上使用jQuery ajax的示例。