我正在尝试在我的Drupal 8模块中使用AJAX(使用jQuery),以便在用户在文本字段中键入内容时重新加载页面。 我设法得到一个完整的HTML页面,但我希望AJAX函数只获取页面的内容(没有整个布局)。
我怎样才能实现这一目标?当请求使用AJAX时,我应该在控制器函数中更改什么才能呈现不同的视图?
我在谷歌和Drupal 8文档上搜索过,但我没有找到任何问题的答案。
提前感谢您的帮助!
答案 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的示例。