Перейти на страницу формы для CakePHP Paginator - PullRequest
1 голос
/ 20 февраля 2011

У меня есть настройки paginator, и он работает очаровательно.Теперь мне нужна форма перехода на страницу, чтобы перейти на страницу непосредственно на основе ее номера.Мне было интересно, можно ли это сделать, просто установив правильное имя для моего поля ввода, которое принимает номер страницы, или я должен сам сделать некоторые дополнительные?

Я использую cakephp 1.3

Ответы [ 3 ]

1 голос
/ 20 февраля 2011

Самый простой способ сделать то, что вы просите, - это иметь форму, которая отправляется методом GET, и ввод с именем "page":

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

Это добавится? Page = [номер страницы]на ваш URL.Однако, если вы хотите иметь хорошие 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);
}   

Вероятно, неплохо бы также убедиться, что значение для ввода текста не содержит вредоносного кода, с помощью функций Sanitize Cake.

1 голос
/ 23 декабря 2011

Или используя чистый 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>
0 голосов
/ 20 февраля 2011

$ this-> Html-> link ('foo', array ('page' => 2)), если вы уже находитесь в правильной паре контроллер / действие.если нет, добавьте действие, контроллер и / или плагин в массив также

...