drupal寻呼机与表单数据

时间:2011-08-11 18:13:01

标签: forms drupal pager

我有一个表单,显然需要一些元素,然后针对外部数据库运行select。我可以毫无问题地提供数据。我遇到的问题是让寻呼机正确提交。对pager_query()的初始请求很好,并正确显示内容和寻呼机。但是,当我选择寻呼机链接时,寻呼机只是重建表格而不提交。我看到GET请求被添加到顶部的url但是就是这样。我必须手动提交表单以使寻呼机正常工作。有没有人见过这种情况?我试着写一些ajax来劫持请求并提交GET但仍然遇到同样的问题。

1 个答案:

答案 0 :(得分:1)

使用Drupal寻呼机时会有一些陷阱。第一个是如果你在一个页面上有几个pager_query(),那么页面上的每个'pager'元素将默认只引用第一个查询。所以你应该做的第一件事是检查你没有使用多个pager_queries到不同的数据库。如果您使用的是Drupal 7.0,那么正确形成的寻呼机查询应如下所示:

$query = db_select('node','n')->extend('PagerDefault');
$query->limit(10);
$query->fields('n',array('nid',))
$query->orderBy('n.nid','DESC');

如果您设法找到重复的寻呼机查询,则可以使用以下命令设置要引用的寻呼机查询:

$pager = array(
  'tags' => array(),
  'element' => 1, /* 0 for first query on the page, 1 for second etc. */
  'quantity' => 5,
  'parameters' => array(),
);

$form['table'] = array(
        '#markup' => theme_table($variables) . theme_pager($pager),
);

如果你使用的是Drupal 6,那么解决方案可能会略有不同。