Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery Drupal8模块-如何使用AJAX?_Jquery_Ajax_Drupal_Drupal 8 - Fatal编程技术网

Jquery Drupal8模块-如何使用AJAX?

Jquery Drupal8模块-如何使用AJAX?,jquery,ajax,drupal,drupal-8,Jquery,Ajax,Drupal,Drupal 8,我目前正在Drupal8模块中尝试使用AJAX(带jQuery),以便在用户在文本字段中键入内容时重新加载页面。 我设法返回了一个完整的HTML页面,但是我希望AJAX函数只获取页面的内容(没有整个布局) 我怎样才能做到这一点?当请求使用AJAX时,为了呈现不同的视图,我应该在控制器函数中更改什么 我在谷歌和Drupal8文档上搜索过,但我没有找到我的问题的任何答案 提前感谢您的帮助 您可以创建一些由某个ajaxAction请求返回的视图,您将通过以下方式在页面上追加或重新定义这些视图: $.a

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

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

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


提前感谢您的帮助

您可以创建一些由某个ajaxAction请求返回的视图,您将通过以下方式在页面上追加或重新定义这些视图:

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

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

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

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

你在用电话吗?这是否在自定义模块输出的表单中?发布生成textfield/form的代码。我的表单在一个小树枝模板中,而不是使用表单API生成的。此外,我还想在我的模块中添加一个导航功能,允许用户进入上一页/下一页,而无需加载整个页面。您刚刚在模板中添加了一个文本字段?它是自定义模块吗?下一页和上一页是什么?你在展示什么?为什么不使用视图?是的,我在模板中添加了一个文本字段。这是一个提供共享日历的自定义模块。因此,我希望用户能够转到上一个月/下一个月或下一周。我是Drupal新手,所以我不知道视图,这对我目前的情况有帮助吗?你的答案只是通用的jquery ajax,不是在Drupal中实现它的正确方法。不清楚你的问题是什么。你有没有试过这个:有很多链接展示了如何在呈现页面的前面获取节点内容。我的问题与jQuery无关,而是与Drupal8有关。我想找到一种方法,当我调用控制器函数时,只返回页面的主要内容(即我模板的内容),而不返回网站的静态部分(菜单、标题、侧边栏等)。
use \Symfony\Component\HttpFoundation\Response;