带有表单数据的 Drupal 寻呼机

发布于 2024-11-29 03:58:39 字数 232 浏览 1 评论 0原文

我有一个表单,显然它接受一些元素,然后针对外部数据库运行选择。我可以毫无问题地返回数据。我遇到的问题是让寻呼机正确提交。对 pager_query() 的初始请求很好,并正确显示内容和寻呼机。但是,当我选择寻呼机链接时,寻呼机只是重建表单而不提交。我看到 GET 请求被添加到顶部的 url 中,但仅此而已。然后我必须手动提交表单才能使寻呼机正常工作。有人见过这种情况发生吗?我尝试编写一些 ajax 来劫持请求并提交 GET 但仍然遇到相同的问题。

I have a form that obviously takes in some elements and then runs a select against an external database. I can present the data back without issue. What I'm having trouble with is getting the pager to submit correctly. the initial request to pager_query() is good and displays back the content and pager correctly. However, when i select the pager link, the pager simply rebuilds the form and does not submit. I see the GET request get added to the url at the top but that's it. I have to then manually submit the form for the pager to work correctly. Has anyone seen this happen? I tried to write some ajax to hijack the request and submit a GET but still running into the same issue.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

绿光 2024-12-06 03:58:39

使用 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,则解决方案可能略有不同。

There are a couple of pit-falls when using Drupal pagers. The first is that if you have several pager_query()'s on a single page, then every 'pager' element on the page willby default only reference the first query. So the first thing you should do is check you aren't using multiple pager_queries to different databases. If you are using Drupal 7.0, then this is what a properly formed pager query should look like:

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

If you manage to find duplicate pager queries, then you can set which pager query to reference by using:

$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),
);

If you are using Drupal 6, then the solution might be slightly different.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文