如何传递数组Drupal的菜单回调(How to Pass Arrays to Drupal Men

2019-09-18 07:36发布

我有两个阵列在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的关键?

Answer 1:

第二个参数传递给$.post()没有连接到您传递的第一个参数的URL; 它是传递到PHP数据$_POST

对于菜单回调的正确定义应为下列之一。

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

然后,您的页面回调应该找到jQuery的传入的数据$_POST



文章来源: How to Pass Arrays to Drupal Menu Callbacks