28 十二月 2009 @ 3:42 下午 

繼上次那篇之後,我在各教學網站上打滾了很久,因為CI的分頁雖然很方便,但是不知道是不是使用的族群太少,一些比較複雜一點功能的文件真的是少的很可憐。像這次遇到分頁的問題就讓我進度卡到陰了一整個禮拜。

我們要弄的是在搜尋後,會將搜尋值keep在input box裡,並將結果顯示在下方表格裡,聽起來很簡單,但是做起來還蠻複雜的。

首先要將CI預設URI的//之前為空值會自動刪掉的部份做修改(以下轉自諾魯島)。 → /system/libraries/URI.php

//1. 註解掉 function _fetch_uri_string 中的

[php]$path = (isset($_SERVER)) ? $_SERVER : @getenv(‘PATH_INFO’);[/php]

//2. 在該行下面加入

[php]</p>
<p>$path = ”;<br />
if (isset($_SERVER) &amp;&amp; isset($_SERVER)) {<br />
$path = str_replace($_SERVER, ”, $_SERVER);<br />
} else {<br />
$path = @getenv(‘PATH_INFO’);<br />
}</p>
<p>[/php]

//3. 將 function _explode_segments() 中的 if ($val != ”) 註解掉

這段改好之後,你在controller裡加上的$var/就不會因為空值被刪掉,再來,就是中文顯示的問題。
因為CI內建的一些功能沒有限制很多,所以也建議不要寫死(上述那個有用到再改,目前還不知道怎麼拉出來做),在中文設定上自己建一個MY_URI(要在網址列上傳中文)。

[php]</p>
<p>class MY_URI extends CI_URI {<br />
function _filter_uri($str)<br />
{<br />
if ($str != ” &amp;&amp; $this-&gt;config-&gt;item(‘permitted_uri_chars’) != ” &amp;&amp; $this-&gt;config-&gt;item(‘enable_query_strings’) == FALSE)<br />
{<br />
$str = urlencode($str); //編碼(解決url中文字問題)<br />
if ( ! preg_match(&quot;|^[&quot;.str_replace(array(‘\\-‘, ‘\-‘), ‘-‘, preg_quote($this-&gt;config-&gt;item(‘permitted_uri_chars’), ‘-‘)).&quot;]+$|i&quot;, $str))<br />
{<br />
show_error(‘The URI you submitted has disallowed characters.’, 400);<br />
}<br />
$str = urldecode($str); //解碼<br />
}</p>
<p>// Convert programatic characters to entities<br />
$bad = array(‘$’, ‘(‘, ‘)’, ‘%28’, ‘%29’);<br />
$good = array(‘$’, ‘(‘, ‘)’, ‘(‘, ‘)’);</p>
<p>return str_replace($bad, $good, $str);<br />
}<br />
}</p>
<p>[/php]

這樣就可以解決中文問題。分頁的部份目前是解決了一大半,還好同事有看到這篇文章,不然應該還是卡在那邊了 囧>

參考網站:諾魯島

Strattera

Posted By: fantasy
Last Edit: 21 九月 2012 @ 04:22 下午

EmailPermalink
Tags
Categories: 程設不歸路


 

Responses to this post » (None)

 
Post a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>


 Last 50 Posts
 Back
 Back
Change Theme...
  • Users » 6
  • Posts/Pages » 131
  • Comments » 6
Change Theme...
  • VoidVoid « Default
  • LifeLife
  • EarthEarth
  • WindWind
  • WaterWater
  • FireFire
  • LightLight

生活大小事



    No Child Pages.

程式設計



    No Child Pages.