【问题标题】:How to Pass Arrays to Drupal Menu Callbacks如何将数组传递给 Drupal 菜单回调
【发布时间】:2012-06-21 03:43:08
【问题描述】:

我在 JavaScript 中有两个数组: var xcoord = [];var ycoord = []; 经过一些处理,每个数组包含 15 个数值。我想将此数据发送到 Drupal 中的菜单回调。

我的 AJAX 代码:

$.post('http://mysite.com/?q=menu_example/my_page', 
    {'ycoord[]': ycoord, 'xcoord[]': xcoord }
);

Drupal PHP:

$items['menu_example/my_page/%/%'] = array(
    'title' => 'My Page', 
    'description' => 'i hope this works', 
    'page callback' => '_graphael', 
    'page arguments' => array(2, 3), // fill this, 
    'access callback' => true,
    'type' => MENU_CALLBACK,
);

在我的控制台中,我看到 xcoordycoord 的值正在正确传输,但回调并不能正常工作。我的问题:如何将数组传递给菜单回调?我还应该在$items 键中使用% 占位符吗?

【问题讨论】:

    标签: php javascript ajax drupal callback


    【解决方案1】:

    您传递给$.post() 的第二个参数没有附加到您作为第一个参数传递的URL;它是在$_POST 中传递给PHP 的数据。

    菜单回调的正确定义应该如下。

    $items['menu_example/my_page'] = array(
      'title' => 'My Page', 
      'description' => 'I hope this works', 
      'page callback' => '_graphael', 
      'access callback' => TRUE,
      'type' => MENU_CALLBACK,
    );
    

    然后您的页面回调应该会在 $_POST 中找到从 jQuery 传递的数据。

    【讨论】:

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