Yukarıda arkadaşın dediği gibi sessiona atamak da mantıklı, başka bir öneri daha sunayım ben.
formun submit özelliğini devre dışı bırak ara butonuna basıldığında bir javascript kodu aranan şeyi bir değişkene atasın boşlukları kendi belirleyeceğin bir özel karakterle değiştirip. sonra
alanadi.com/arama/ananan-kelime gibi bir adrese göndersin, aranan-kelime örneğinde boşluklar - ile değiştirilmiş, arama sonuçlarını göstereceğin controller/method içerisinde belirlediğin özel karakteri tekrar boşlukla değiştir ve o şekilde aranan veriyi almış olursun. pagination kısmında ise init öncesi configdeki base_url değerini uri kütüphanesi ile aranan kelimenin bulunduğu segmente ayarla. olay bitmiştir.
Örnek:
view:
<form name="arama" onsubmit="arama_yap()" method="post">
<input type="text" name="aranan">
<input type="submit" value="Ara">
</form>
javascript
:
<script type="text/javascript">
function arama_yap()
{
var aranan = document.forms["arama"]["aranan"].value;
var ara = aranan.replace(/ /g ,"-");
location.href(<?= base_url('cms/arama/')?>+ara);
##location.replace(<?= base_url('cms/arama/')?>+ara);
}
</script>controller:
<?php
class Cms extends CI_Controller
{
public function arama($aranan)
{
$this->load->library('pagination');
$config['base_url'] = base_url('cms/arama/'.$aranan);
// Lazım olursa $config['uri_segment'] = 3;
$config['total_rows'] = 200;
$config['per_page'] = 20;
$this->pagination->initialize($config);
$aranan = str_replace('-',' ',$aranan);
//veritabanından $aranan değişkenine göre aramanı yaptır arama sonuçlarının olduğu viewi çağır
}
}Ek olarak karakter değiştirmek yerine base64_encode base64_decode gibi enc/dec işlemleri ile de kullanabilirsin