2013-11-15 3 views
0

У меня в основном есть окно поиска по индексу моего сайта, и когда пользователь пытается найти что-либо , функция q вызывается из контроллера (search.php), а метод, используемый формой, пост, так что в основном я в конечном итоге с этим следующим URL-адресом youdomain.com/search/qi хотел получить что-то вроде этого youdomain.com/search/your-search-query.html Я знаю, что это возможно, используя маршруты, которые я пробовал искать, но не удалось получить что-то вроде этого.CodeIgniter Change POST method URL

Я не хочу менять свой метод формы, как если бы я менял его, чтобы получить, мне нужно будет также изменить URI config.php на запрос, который является довольно уродливым.

Итак, есть ли решение?

+0

http://ellislab.com/codeigniter%20/user-guide/general/routing.html –

+0

Я уже искал все это, но как я могу заставить его работать с методом POST:/вы можете снова прочитать вопрос, я ясно как называется класс. –

+0

'$ this-> input-> get ('name-of-uri-query-variable')' – tomexsans

ответ

0

Вопрос: Что вы хотите, если пользователь вводит адрес youdomain.com/search/your-search-query.html? Если вы хотите, чтобы результаты поиска также были в этом случае (что правильно делать), вам все равно придется внедрять GET-поиск.

Я не должен даже говорить вам об этом, потому что это, на мой взгляд, плохое дело, но вы можете поймать событие отправки с помощью javascript, изменить URL-адрес запроса и затем отправить его.

+0

Я согласен, что это плохой способ, но я не думаю, что у меня есть какой-либо вариант? –

+0

Я попытался получить, но потом, когда я попытаюсь представить из формы, я получаю youdomain.com/search/q=query как мне получить только вашdomain.ru/search/query-text.html? я оставляю входное имя пустым? –

+0

Нет, вы пропустили, я имел в виду, что GET - хороший способ пойти сюда. Попробуйте настроить '$ config ['uri_protocol']' в вашем 'config/config.php' на' AUTO' или 'PATH_INFO'. Это должно позволить отправлять запросы на этот URL: 'youdomain.com/search/q/query_text'. Если вы хотите также '.html' в конце, попробуйте' $ config ['url_suffix'] = '.html'; '. Если это не поможет, проверьте это: http://stackoverflow.com/questions/4279904/codeigniter-and-its-uri-protocol –