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