将参数传递给 zend paginationControl 部分

发布于 2024-11-02 21:41:09 字数 1044 浏览 4 评论 0原文

我有一个页面显示大量数据,包括 Zend_Paginator。 页面操作为 /po/fetch?id=someID

我想要做的是将“id”参数传递给 zend paginationControl,这样分页链接将类似于 /po/fetch?id=someID&page=somePage。不幸的是,我找不到任何关于如何将该参数传递给分页控件的解释。

我对 paginationControl 的调用:

echo $view->paginationControl($paginator, 'Sliding',$control, $params);

其中 $params = array('id' => someID

和我的分页部分是:

<a href=<?= $url.'&page='.$this->first; ?> id="first"> First </a>

<a href=<?= $url.'&page='.$this->previous; ?> id="previous">&lt; Previous</a>

<?php 
foreach($this->pagesInRange as $page) {
?>
        <a href="<?= $url.'&page='.$page; ?>">.$page.</a>  | ;
<?php 
}
?>

<a href=<?= $url.'&page='.$this->next;?> id="next"> Next &gt;</a>

<a href=<?= $url.'&page='.$this->last; ?> id="last"> Last </a>

并且我希望 $url 具有指定的形式。

I have a page that displays a lot of data, including Zend_Paginator.
The page action is /po/fetch?id=someID.

what i want to do is to pass the "id" parameter to zend paginationControl so the pagination links will be something like /po/fetch?id=someID&page=somePage. unfortunally i can't find anywhere explanation on how i can pass that parameter to the paginationControl.

my call to paginationControl:

echo $view->paginationControl($paginator, 'Sliding',$control, $params);

where $params = array('id' => someID

and my pagination partial is:

<a href=<?= $url.'&page='.$this->first; ?> id="first"> First </a>

<a href=<?= $url.'&page='.$this->previous; ?> id="previous">< Previous</a>

<?php 
foreach($this->pagesInRange as $page) {
?>
        <a href="<?= $url.'&page='.$page; ?>">.$page.</a>  | ;
<?php 
}
?>

<a href=<?= $url.'&page='.$this->next;?> id="next"> Next ></a>

<a href=<?= $url.'&page='.$this->last; ?> id="last"> Last </a>

and I want $url to be of the specified form.

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

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

发布评论

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

评论(4

稚气少女 2024-11-09 21:41:09
$this->id 
$this->id 
明明#如月 2024-11-09 21:41:09

嘿试试这个,它肯定会起作用......

<a href="<?php echo $this->url(array('page' => $page,'id'=>'1')); ?>">
    <?php echo $page; ?>
</a>

这里1作为id给出,你必须传递你想要的id......
喜欢

<a href="<?php echo $this->url(array('page' => $page,'id'=>$param['id'])); ?>">
        <?php echo $page; ?>
    </a>

Hey Try this, It will surely work.....

<a href="<?php echo $this->url(array('page' => $page,'id'=>'1')); ?>">
    <?php echo $page; ?>
</a>

Here 1 is given as the id you have to pass the id you want.......
Like

<a href="<?php echo $this->url(array('page' => $page,'id'=>$param['id'])); ?>">
        <?php echo $page; ?>
    </a>
人心善变 2024-11-09 21:41:09

您的示例代码没有显示如何填充 $url ,但您确实应该使用 URL ViewHelper

因此,例如 - 您之前的链接将变为:

<a href=<?php echo $this->url(array('page' => $this->previous)); ?> id="previous">< Previous</a>

这将返回当前页面的正确 URL,并将 page 参数设置为 $this->previous。因此,如果当前 url 是 /users/view?foo=bar&page=5,上面的代码将输出 /users/view?foo=bar&page=4对于上一个链接。请注意如何保留已存在的任何查询参数。

因此,如果显示分页器的 URL 上已存在 id 参数,则上述代码将“正常工作”。但是,如果您仍然需要添加 id 参数,您可以这样做:

<a href=<?php echo $this->url(array('page' => $this->previous, 'id' => $this->id)); ?> id="previous">< Previous</a>

继续我们前面的示例,此代码将输出以下 url:/users/view?foo =bar&page=4&id={someId}

以下是 URL ViewHelper 的参考文档:

url($urlOptions, $name, $reset):
根据命名创建 URL 字符串
路线。 $urlOptions 应该是
键/值对的关联数组
由特定路线使用。

最后一点 - URL ViewHelper 的 $reset (第三个)参数会非常方便。默认行为是保留当前请求的所有查询参数,但使用 true 调用 $this->url(array(), 'default', true) $reset 参数基本上会删除除 $urlOptions 中指定的参数之外的所有参数。

Your example code doesn't show how $url is populated, but you really should be using the URL ViewHelper.

So, for example - your previous link would become:

<a href=<?php echo $this->url(array('page' => $this->previous)); ?> id="previous">< Previous</a>

This will return a proper URL to the current page with the page parameter set to $this->previous. So if the current url is /users/view?foo=bar&page=5, the above code would output /users/view?foo=bar&page=4 for the previous link. Notice how any query parameters that are already present are preserved.

So, if the id parameter is already present on the URL showing your paginator, the above code will "just work". However, if you still need to add the id parameter, you can do so like this:

<a href=<?php echo $this->url(array('page' => $this->previous, 'id' => $this->id)); ?> id="previous">< Previous</a>

To continue from our previous example, this code would output the following url: /users/view?foo=bar&page=4&id={someId}

Here is the reference documentation for the URL ViewHelper:

url($urlOptions, $name, $reset):
Creates a URL string based on a named
route. $urlOptions should be an
associative array of key/value pairs
used by the particular route.

One last note - the $reset (third) parameter of the URL ViewHelper will come in very handy. The default behavior is to preserve any query parameters of the current request but calling $this->url(array(), 'default', true) with true for the $reset parameter will basically remove all parameters except for the ones you specify in $urlOptions.

日裸衫吸 2024-11-09 21:41:09

我遇到了同样的问题,所以我在部分分页器中使用了下面给出的代码。

我已经在分页器部分视图文件(control.phtml)中创建了一个函数,或者可能有所不同。

function queryStr($p){
    $params = $array = Zend_Controller_Front::getInstance()->getRequest()->getQuery();
    $params['page']=$p;
    $str='?';
    foreach($params as $k=>$v){
        if($v)
           $str .= $k.'='.$v.'&';
    }
    return $str;
}

现在对于链接,我使用下面给出的代码。

<a href="<?php echo queryStr($page); ?>">

相反,

<a href="<?php echo $this->url(array('page' => $page)); ?>">

我确信它也会对其他人有帮助。

I have gone through the same issue so I have used code given below in partial paginator.

I have created a function in paginator partial view file(control.phtml) or may be different.

function queryStr($p){
    $params = $array = Zend_Controller_Front::getInstance()->getRequest()->getQuery();
    $params['page']=$p;
    $str='?';
    foreach($params as $k=>$v){
        if($v)
           $str .= $k.'='.$v.'&';
    }
    return $str;
}

Now for links I am using code given below.

<a href="<?php echo queryStr($page); ?>">

Instead of

<a href="<?php echo $this->url(array('page' => $page)); ?>">

I am sure it will be helpful to others as well.

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