【问题标题】:drupal 7 function call by jquery Ajax with out using hook_menujquery Ajax 不使用 hook_menu 调用 drupal 7 函数
【发布时间】:2013-06-18 04:36:31
【问题描述】:

使用 Drupal 7,我需要一个 ajax 请求与节点/页面中提到的函数进行通信。我正在尝试不使用 hook_menu() 来做到这一点。但是ajax没有和指定的节点通信。

在我编写的页面正文中创建了一个名为“test/star”的页面,并在我的 .module 中定义了 test_example() 函数。但它不起作用。请任何人帮助我。

提前致谢。

【问题讨论】:

  • 你为什么要在没有 hook_menu() 的情况下这样做?
  • 其实我们的项目是从d6迁移到d7的。在 d6 中,我们使用了自定义模块和 hook_menu。但是在 d7 中,我们被要求不要使用 hook_menu()。为什么它不适用于节点?唯一的方法是使用 hook_menu 吗?

标签: jquery drupal-7


【解决方案1】:

您可以使用菜单挂钩在 Drupal 7 中创建 AJAX 页面。

如果您无法使 AJAX 页面正常工作,请确保您已通过管理菜单或 drush 清除 Drupal 的缓存,使用 drush cc all

这是我刚刚针对我的 Drupal 7 安装验证的示例。我创建了一个模块,并添加了 hook_menu() 的实现:

function mymodule_menu() {
  // Simple AJAX callback
  $items['ajax/testing'] = array(
    'title' => 'Get a list of foobar',
    'file' => 'includes/foobar.inc',
    'page callback' => 'mymodule_get_foobar',
    'access arguments' => array('access content'),
    'type' => MENU_CALLBACK,
  );

  return $items;
}

并且在includes/foobar.inc中:

function mymodule_get_foobar() {
  $data = array("1", "2", "3", "4");
  return drupal_json_output($data);
}

【讨论】:

    猜你喜欢
    • 2012-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多