Drupal 8 模块 - 如何使用 AJAX?
Drupal 8 module - How to use AJAX?
我目前正尝试在我的 Drupal 8 模块中使用 AJAX(使用 jQuery),以便在用户在文本字段中键入内容时重新加载页面。
我设法返回完整的 HTML 页面,但我希望 AJAX 函数仅获取页面的内容(没有整个布局)。
我怎样才能做到这一点?当请求使用 AJAX?
时,我应该在我的控制器函数中更改什么以呈现不同的视图
我搜索了 Google 和 Drupal 8 文档,但没有找到我的问题的任何答案。
在此先感谢您的帮助!
您可以制作一些由某些 ajax 操作请求返回的视图,您将通过这种方式在您的页面上追加或重新定义:
$.ajax({
type: 'GET',
url: 'ajaxContent.php?action=get&pageId=777',
cache: false
}).done(function( receivedHtml ) {
$("#targetBlock").html(receivedHtml);
});
这是在 ajax 内容控制器上使用 jQuery ajax 的示例,参数通过 url。
您可以return AJAX回调函数中的数据如下。
$build[] = array(
'#type' => 'markup',
'#markup' => '<p>Demo text content</p>',
);
return new Response(render($build));
确保包含响应 class
use \Symfony\Component\HttpFoundation\Response;
我目前正尝试在我的 Drupal 8 模块中使用 AJAX(使用 jQuery),以便在用户在文本字段中键入内容时重新加载页面。 我设法返回完整的 HTML 页面,但我希望 AJAX 函数仅获取页面的内容(没有整个布局)。
我怎样才能做到这一点?当请求使用 AJAX?
时,我应该在我的控制器函数中更改什么以呈现不同的视图我搜索了 Google 和 Drupal 8 文档,但没有找到我的问题的任何答案。
在此先感谢您的帮助!
您可以制作一些由某些 ajax 操作请求返回的视图,您将通过这种方式在您的页面上追加或重新定义:
$.ajax({
type: 'GET',
url: 'ajaxContent.php?action=get&pageId=777',
cache: false
}).done(function( receivedHtml ) {
$("#targetBlock").html(receivedHtml);
});
这是在 ajax 内容控制器上使用 jQuery ajax 的示例,参数通过 url。
您可以return AJAX回调函数中的数据如下。
$build[] = array(
'#type' => 'markup',
'#markup' => '<p>Demo text content</p>',
);
return new Response(render($build));
确保包含响应 class
use \Symfony\Component\HttpFoundation\Response;