Поиск по сайту с CodeIgniter? - PullRequest
1 голос
/ 12 мая 2010

Мне нужно сделать простой поиск по сайту с нумерацией страниц; Может кто-нибудь сказать мне, как это сделать, не затрагивая структуру URL? В настоящее время я использую структуру URL CodeIgniter по умолчанию и удалил из нее index.php. Есть предложения?

Ответы [ 4 ]

3 голосов
/ 12 мая 2010

Вы можете просто использовать URL-адрес как /search/search_term/page_number.

Установите свой маршрут так:

$route['search/:any'] = "search/index";

А твой контроллер вот так:

function index()
{
    $search_term = $this->uri->rsegment(3);

    $page = ( ! $this->uri->rsegment(4)) ? 1 : $this->uri->rsegment(4);

    // some VALIDATION and then do your search
}
1 голос
/ 20 февраля 2012

Просто чтобы обновить этот вопрос. Вероятно, лучше всего использовать следующую функцию:

$uri = $this->uri->uri_to_assoc()

, и результат затем поместит все в ассоциативный массив следующим образом:

[array]
(
    'name' => 'joe'
    'location'  => 'UK'
    'gender'    => 'male'
)

Подробнее о URI-классе читайте на CodeIgniter.com

0 голосов
/ 24 февраля 2011

Code Igniter отключает запросы GET по умолчанию, но вы можете создать альтернативу , если вы хотите, чтобы URL отображал строку поиска.

Ваш URL может быть в записи www.yoursite.com / index.php / класс / функция / request1: value1 / request2: значение2

$request = getRequests();
echo $request['request1'];
echo $request['request2'];

function getRequests() 
{ 
    //get the default object 
    $CI =& get_instance(); 
    //declare an array of request and add add basic page info 
    $requestArray = array(); 
    $requests = $CI->uri->segment_array();
    foreach ($requests as $request)
    { 
        $pos = strrpos($request, ':');
        if($pos >0)
        {
            list($key,$value)=explode(':', $request);
            if(!empty($value) || $value='') $requestArray[$key]=$value;
        }
    }
    return $requestArray ; 
} 

источник: http://codeigniter.com/wiki/alternative_to_GET/

0 голосов
/ 12 мая 2010

Не совсем понимаю, что вы подразумеваете под "влиянием на структуру URL". Вы хотите, чтобы нумерация страниц осуществлялась без изменения URL-адреса?

Стандартный класс нумерации страниц в CI позволит вам настроить нумерацию страниц так, что единственным изменением в URL будет число в конце

например, если у вас есть 5 результатов на страницу, ваши URL могут быть

http://www.example.com/searchresults

и тогда страница 2 будет

http://www.example.com/searchresults/5

и страница 3 будет

http://www.example.com/searchresults/10

и т. Д.

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

...