转到cakephp paginator的页面表单

时间:2011-02-20 12:20:12

标签: cakephp cakephp-1.3

我有我的分页器设置,它很迷人。现在,我需要转到页面表单,直接根据其编号跳转到页面。我想知道是否可以通过为我的输入字段设置一个正确的名称来获取页码,或者我必须自己做一些额外的事情?

我正在使用cakephp 1.3

3 个答案:

答案 0 :(得分:1)

最简单的方法就是使用GET方法和名为“page”的输入提交表单:

<form method="get" action="/mycontroller/myaction/">
   <input type="text" name="page" />
   <input type="submit" />
</form>

这会将?page = [页码]附加到您的网址。但是,如果你想拥有漂亮的URL,另一种方法是在你的控制器中编写代码以使用命名参数重定向,这就是普通的Cake分页方法的工作原理:

控制器:

if (!empty($this->params['url']['page'])) {         
$url = array('controller'=>'mycontroller', 'action' => 'myaction');
$url = array_merge($url, array('page'=>$this->params['url']['page']));          
$this->redirect($url);
}   

使用Cake的Sanitize函数也可以确保文本输入值不包含恶意代码。

答案 1 :(得分:1)

或者使用纯javascript,html可以按照以下方式完成

    <span>
        <a>Go to page</a>&nbsp;<input id="goInput" class="goPage" type="text" name="page" />
        <a id="goPageLink" onclick="window.location = window.location.pathname.replace(new RegExp('\/page:[0-9]*', 'g'), '')+'/page:'+document.getElementById('goInput').value;">Go</a>
    </span>

答案 2 :(得分:0)

$ this-&gt; Html-&gt; link('foo',array('page'=&gt; 2))假设您已经在正确的控制器/操作对中。如果没有将动作,控制器和/或插件添加到数组