2008-10-22 90 views
3

我在每個頁面上都有一個搜索表單。如果我使用表單助手,則默認爲$_POST。我希望在URI中顯示搜索字詞:簡單搜索:將表單變量傳遞給URI使用CodeIgniter

http://example.com/search/KEYWORD 

我已經在Google上呆了大約一個小時,但無濟於事。由於本地URI約定,我只找到有關$_GET基本上被禁用的文章。我不能成爲第一個想要這種功能的人,是嗎?提前致謝!

回答

5

如果你處理的是沒有啓用JS的人,那麼有更好的解決方法。

查看:

<?php echo form_open('ad/pre_search');?> 
    <input type="text" name="keyword" /> 
</form> 

控制器

<?php 
    function pre_search() 
    { 
     redirect('ad/search/.'$this->input->post('keyword')); 
    } 

    function search() 
    { 
     // do stuff; 
    } 
?> 

我以前用這個了很多次。

-2

我對CodeIgniter瞭解不多,但是它是PHP,所以$_GET仍然可以使用嗎?您可以像Google那樣格式化您的網址:mysite.com/search?q=KEYWORD並使用$_GET['q']提取數據。

此外,搜索表單似乎是一個糟糕的地方使用POST; GET可加入書籤,並不意味着某些內容正在改變服務器端。

+0

號碼在Codeigniter – jmccartie 2008-10-22 20:54:37

+0

中禁用了「GET」,但您可以在此啓用 – 2008-11-26 01:41:30

3

據我所知,沒有方法用簡單的POST完成此操作。但是,您可以通過Javascript訪問表單並更新目的地。例如:

<form id="myform" onsubmit="return changeurl();" method="POST"> 
<input id="keyword"> 
</form> 

<script> 
function changeurl() 
{ 
    var form = document.getElementById("myform"); 
    var keyword = document.getElementById("keyword"); 

    form.action = "http://mysite.com/search/"+escape(keyword.value); 

    return true; 
} 
</script> 
+0

Codeigniter問題 - 搜索字符串中的撇號將不會被CI URI庫接受:「您提交的URI已禁止使用字符。 – jmccartie 2009-04-22 21:40:45

0

查看這篇文章,瞭解如何啓用GET查詢字符串和分段URL。

http://codeigniter.com/forums/viewthread/56389/#277621

使您可以使用下面的方法來獲取額外的變量之後。

// url = http://example.com/search/?q=text 
$this->input->get('q'); 

這樣更好,因爲您不需要更改allowed_uri_chars配置設置。如果您只是將用戶輸入的任何內容放入URI中,您可能會收到「您提交的URI不允許使用字符」錯誤。

0

這裏是最好的解決辦法:

$uri = $_SERVER['REQUEST_URI']; 

$pieces = explode("/", $uri); 

$uri_3 = $pieces[3]; 

感謝erunways

相關問題