Ben de pagination ile basit bir site arama yapmak gerekiyor; Herkes nasıl URL yapısını etkilemeden bunu bana söyleyebilir misiniz? Şu anda varsayılan CodeIgniter URL yapısını kullanarak ve ben index.php
ondan kaldırdık. Herhangi bir öneriniz?
Sadece /search/search_term/page_number
gibi bir url kullanabilirsiniz.
Bu gibi rota ayarlayın:
$route['search/:any'] = "search/index";
Ve bu gibi kontrolör:
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
}
Sadece bu soruyu güncellemek için. Aşağıdaki işlevi kullanmak için muhtemelen en iyisidir:
$uri = $this->uri->uri_to_assoc()
ve sonuç, daha sonra şöyle bir ilişkisel dizi içine her şeyi koymak olacaktır:
[array]
(
'name' => 'joe'
'location' => 'UK'
'gender' => 'male'
)
URI Class at CodeIgniter.com hakkında daha fazlasını okuyun
Oldukça Eğer "url yapısını etkileyen" demek ne anlamıyorum. Eğer sayfalama tüm değiştirmeden URL olmadan meydana istersin demek?
URL tek değişiklik ucunda bir numara olacağını böylece CI standart sayfalama sınıfı kurulum sayfalandırmaya sağlayacak
örneğin bir sayfaya 5 sonuç olsaydı sizin adresler olabilir
http://www.example.com/searchresults
ve sonra sayfa 2 olacak
http://www.example.com/searchresults/5
ve sayfa 3 olacaktır
http://www.example.com/searchresults/10
ve benzerleri.
Eğer URL herhangi bir değişiklik olmadan bunu yapmak istiyorsa o zaman sanırım ajax kullanmak.
Kod Ateşleyici varsayılan sorguları GET devre dışı bırakır, ancak url arama dizesini göstermek istiyorsanız bir alternative inşa edebilirsiniz.
Your url can be in the notation www.yoursite.com/index.php/class/function/request1:value1/request2:value2
$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 ;
}