Как передать массивы в обратные вызовы меню Drupal

У меня есть два массива в 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, ); 

В моей консоли я вижу, что значения для xcoord и ycoord передаются правильно, но обратный вызов не совсем работает. Мой вопрос: как передать массивы в обратный вызов меню? Должен ли я по-прежнему использовать % placeholder в ключе $items ?

Solutions Collecting From Web of "Как передать массивы в обратные вызовы меню Drupal"

Второй аргумент, который вы передаете в $.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 .