2013-03-26 3 views
0

У меня есть расширенная форма поиска, которую я переключил с метода = GET на метод = POST, поскольку URL-адрес стал слишком длинным для браузера.Pagination with POST

Теперь я использовал драгоценный камень (will_pagination) для разбивки на страницы. Проблема в том, что камень, используемый для слияния параметров и обновления page_no для создания ссылки, и, хотя это сработало для формы на основе GET, очевидно, что это не работает для формы, основанной на методе POST. Для eg-: http://localhost:3000/orders/advanced_search изменяется на http://localhost:3000/orders/advanced_search?page=2, который не работает, поскольку это пост-вызов, а не вызов вызова.

Каковы мои альтернативы?

Есть ли способ, чтобы ссылка посылала вызов POST при слиянии параметров на RAILS?

Другое дело, я думал, что ссылка на ссылку на страницу связана с действием по клику, которое обновляет поле скрытой страницы в моей форме и затем повторно отправляет. Надеюсь, что эта часть jquery не так уж трудна.

+0

Я всегда держать представить фильтры сессии и только принимает «страницу» парам использовать в запросах SQL ... при повторном пользователя» -submit 'данные страницы Я только перезаписываю содержимое фильтра сеанса и сбрасываю' страницу 'var. –

+0

Я не верю, что контроллер Rails заботится о том, было ли конкретное значение GET или POST. Я уверен, что 'params [: whatever]' будет работать, был ли запрос GET или POST. –

+0

Yup it will. Но в моем контроллере я делаю вызов RestClient.post, который терпит неудачу, когда параметры добавляются к самому URL-адресу. Плюс, когда вы нажимаете ссылку, как указано выше, вы теряете все свои другие параметры. :-( –

ответ

0

Простой, но не оптимизированный.
В PHP до will_pagination называется, поставить это:

$_GET['page_no'] = $_POST['page_no']; 
+0

Предположим, что есть страницы, сгенерированные как 1,2,3, .... 1500. Теперь, когда он нажимает на страницу 3, ссылка http: // localhost: 3000/orders/advanced_search? page = 3, и в этом процессе я теряю свои предыдущие параметры. Где я должен делать изменения? Я не могу позволить пользователю щелкнуть ссылку, как это, так как это не будет Работа. –