带有表单数据的 drupal 寻呼机
Posted
技术标签:
【中文标题】带有表单数据的 drupal 寻呼机【英文标题】:drupal pager with form data 【发布时间】:2011-08-11 18:13:01 【问题描述】:我有一个表单,它显然会接收一些元素,然后对外部数据库运行一个选择。我可以毫无问题地返回数据。我遇到的问题是让寻呼机正确提交。对 pager_query() 的初始请求很好,可以正确显示内容和寻呼机。但是,当我选择寻呼机链接时,寻呼机只是重建表单而不提交。我看到 GET 请求被添加到顶部的 url 中,仅此而已。然后我必须手动提交表单才能使寻呼机正常工作。有人见过这种情况吗?我试图编写一些 ajax 来劫持请求并提交一个 GET 但仍然遇到同样的问题。
【问题讨论】:
【参考方案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,那么解决方案可能会略有不同。
【讨论】:
以上是关于带有表单数据的 drupal 寻呼机的主要内容,如果未能解决你的问题,请参考以下文章