带有表单数据的 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 寻呼机的主要内容,如果未能解决你的问题,请参考以下文章

如何从drupal寻呼机进行ajax调用

Drupal 7:发布日期的暴露过滤器

在 Drupal 7 中更改寻呼机格式

如何覆盖drupal视图寻呼机查询?

drupal 6 迷你寻呼机主题

Drupal 7 构建寻呼机