在ajax请求中返回zend paginator对象,得到错误的url

时间:2011-04-12 09:26:33

标签: jquery ajax zend-framework zend-paginator

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

问题是返回的分页符没有考虑新的url。例如,如果我在没有ajax的情况下这样做,我会将我的页面URL读取:

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

然而,从和ajax查询它不起作用,搜索变量没有附加到paginator链接中的url。请帮助。

2 个答案:

答案 0 :(得分: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

也许您需要更改网址字段。只需提醒网址字段,看看需要更改的内容。

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

答案 1 :(得分:0)

没有看到你的代码我不能确定,但​​听起来像你的Paginator Controls View Scripts(即呈现你的Next,Previous等链接的.phtml文件)正在使用$this->url()但您尚未将其配置为检测并将搜索参数附加到链接的末尾。

如果您的控件视图脚本特定于该Paginator,请尝试在<a>标记的href参数中手动添加“?search = something”。这应该强制它将它们包含在输出中。

如果您能够向我们提供来自Controller和View的代码,展示如何实现Paginator并呈现页面,那将是非常棒的。或者现场演示总是很好:D