📜  drupal 8 从表单中获取节点 - Javascript (1)

📅  最后修改于: 2023-12-03 14:40:53.061000             🧑  作者: Mango

Drupal 8 - 从表单中获取节点

在Drupal 8中使用Javascript主题可以帮助我们轻松地从表单中获取节点。以下是在JavaScript主题中获取节点的方法。

使用Drupal Ajax获取节点

使用Drupal Ajax是从表单中获取节点的最简单方法。以下是一个例子:

Drupal.behaviors.myBehavior = {
  attach: function(context, settings) {
    $(context).find('#myform').once('myBehavior', function() {
      var form = this;
      $(form).find('#mybutton').click(function() {
        var node_id = $(form).find('#node_id').val();
        var url = '/ajax/node/' + node_id;

        var ajax_settings = {
          url: url,
          success: function(data) {
            console.log(data);
          }
        };

        $.ajax(ajax_settings);
      });
    });
  }
};

以上代码中,我们使用了$.ajax()函数来创建一个Ajax请求。当用户点击#mybutton按钮时,我们获取了#node_id表单元素的值并将其添加到请求URL中,然后我们将通过Ajax请求从服务器获取节点数据,并将其打印到控制台上。

使用 Drupal Services 获取节点

Drupal提供了许多服务,可以帮助我们轻松地获取节点数据。以下是一个示例:

Drupal.behaviors.myBehavior = {
  attach: function(context, settings) {
    $(context).find('#myform').once('myBehavior', function() {
      var form = this;
      $(form).find('#mybutton').click(function() {
        var node_id = $(form).find('#node_id').val();

        var endpoint = "/jsonapi/node/article/" + node_id;

        var ajax_settings = {
          type: "GET",
          url: endpoint,
          dataType: "json",
          success: function(data) {
            console.log(data);
          }
        };

        $.ajax(ajax_settings);
      });
    });
  }
};

在上面的例子中,我们使用Drupal的JSON API服务来获取节点数据。我们创建一个包含节点ID的URL(这里假设是文章类型),然后我们使用$.ajax()函数来创建一个Ajax请求,并将其发送到服务器以获取节点数据。我们将返回的数据打印到控制台上。

##总结

在Javascript主题中获取节点的方法有很多种。无论您选择哪种方法,一定要牢记安全性。请确保通过验证和授权方式来获取和操作数据,以保护应用程序和服务器安全。