3

我在这里使用Zend Paginator,在一个 ajax 请求中,我根据搜索结果检索对象并呈现 HTML 并将其与呈现的 Zend Paginator 视图一起传递。

问题是返回的分页器没有考虑到新的 url。例如,如果我要在没有 ajax 的情况下执行此操作,我的页面 url 会显示为:

www.mysite.com/?search=something&page=2

但是,从和 ajax 查询它不起作用,搜索变量不会附加到分页器链接中的 url。请帮忙。

4

2 回答 2

0

我假设您在网站的某个地方有分页链接,这些链接指向在您的pagination.phtml文件中生成的不同页面。

OnClick 您需要获取该href 属性并像这样加载内容:

function getContents() {
    var url = window.location.protocol + "//" + 
              window.location.host + $(this).attr('href');

    var jqxhr = $.post(url, {
        "format" : "json"
    }, function(data) {
        displayContents(data);
    }, 'html');
    return false;
} 

$(document).ready(function() {
    $("#paginator a").each(function() {
        $(this).click(getContents);
    });
});

这样你就可以得到你的经典网址

www.mysite.com/?search=something&page=2

也许您需要更改 url 字段。只需提醒 url 字段并查看需要更改的内容。

这是一个教程(没有搜索):Zend Framework 1.9 tutorial 14: ajax requests part 1

于 2011-04-12T09:42:29.170 回答
0

如果没有看到您的代码,我无法确定,但听起来您的分页器控件视图脚本(即.phtml呈现您的下一个、上一个等链接的文件)正在使用,$this->url()但您尚未将其配置为检测和附加搜索参数到链接的末尾。

<a>如果您的控制视图脚本特定于该分页器,请尝试在标签的 href 参数中手动添加“?search=something” 。这应该迫使它在输出中包含这些。

如果您可以向我们提供来自您的控制器和视图的代码,展示您如何实现分页器和渲染页面,那就太好了。或者现场演示总是好的:D

于 2011-04-20T07:04:44.083 回答