我知道CI有專屬的中文教學網站,不過個人是覺得因為他是一個細節一個細節拉出來講,比較適合當作工具來用,所以在此記錄一下這網站開發的第一步。
首先將 system 和 index.php 放到網站的根目錄下,這樣直接連進 http://網站.com/index.php 就可以看到歡迎畫面了
–以下使用範例跟中文教學網內的影片一樣–
再來是修改的第一步,首先建立一個 blog.php 到 system/application/controllers/
為了符合MVC的設計原則,凡事屬於控制性質(controllers)的code我都是丟進controllers裡運作
<?
class Blog extends Controller {
function index() {
echo "Hello world!!";
}
}
?>
建立好後,輸入http://網站.com/index.php/blog (注意是小寫,以檔名為主),就可以看到Hello world!!的字樣出現
如果你要把他設為首頁,也就是不要再加個blog才看的到,可以到 system/application/config/routes.php 裡
/* 將下面這個參數設定改成這樣 */ $route['default_controller'] = "blog";
之後直接輸入 http://網站.com/index.php 就可以看到跟 http://網站.com/index.php/blog 一樣的結果了。
基本上,最近貼的有關於核取方塊的code都可以結合在一起
//全選後取消其中一個時全選方塊也取消
function check_box(obj,fld) {
var checkboxs = document.getElementsByName(fld);
var check = 0;
for (var i = 1; i < checkboxs.length; i++) {
if(checkboxs[i].checked == true) check++;
}
if(checkboxs.length != check) {
checkboxs[0].checked = '';
}
if(checkboxs.length == (check+1)){
checkboxs[0].checked = true;
}
}
接著加在”非全選核取方塊裡”
<input type="checkbox" name="select[]" id="select[]" onclick="check_box(this,'select[]');" value="1"/>
此方法可以結合上一篇的用法,達到一些網路問卷的效果。
//全取消時確認按鈕不可按
function check_all(obj,fld) {
var checkboxs = document.getElementsByName(fld);
var check = 0;
for (var i = 0; i < checkboxs.length; i++) {
if(checkboxs[i].checked == '') check++;
}
if(checkboxs.length == check) {
document.getElementById('check').disabled = true;
}else{
document.getElementById('check').disabled = false;
}
}
加入要觸發事件的物件內(全選的核取方塊)
<input type="checkbox" name="select[]" id="select[]" value="all" onclick="check_all(this,'select[]');" />
被擉發事件的按鈕
<input type="button" class="btn_bg" name="check" id="check" />
為什麼不用getElementsByName而用getElementById呢?
我在用getElementsByName的時候會抓不到這個button,一改用getElementById就抓到了,很神奇,不要問。
最近弄比較多js的部份,所以把常忘記的部份記錄一下
一樣在頁首加上這段
function select_all(obj,fld) {
var checkboxs = document.getElementsByName(fld);
for (var i = 0; i < checkboxs.length; i++) {
checkboxs[i].checked = obj.checked;
}
}
然後在要觸發的事件上加入function name(比方說全選的chcek box)
<input type="checkbox" name="select[]" id="select[]" value="all" onclick="select_all(this,'select[]');" />
很久沒更新這了,一天到晚被進度追著跑,又卡到陰到瓶頸了...
首先在頁首加上這段code,它會去判斷頁面上”SysActionFrm”這個form裡所有type為radio的物件,然後改為空值,也就是不選取的意思
<script type="text/javascript">
function clear_all() {
for (var i = 0; i < SysActionFrm.elements.length; i++) {
if (SysActionFrm.elements[i].type == 'radio') {
SysActionFrm.elements[i].checked = '';
}
}
}
</script>
接著在按鈕上加入onclick觸發clear_all()事件
<input type="button" name="search" class="btn_bg" onclick="clear_all();"/>
繼上次那篇之後,我在各教學網站上打滾了很久,因為CI的分頁雖然很方便,但是不知道是不是使用的族群太少,一些比較複雜一點功能的文件真的是少的很可憐。像這次遇到分頁的問題就讓我進度卡到陰了一整個禮拜。
我們要弄的是在搜尋後,會將搜尋值keep在input box裡,並將結果顯示在下方表格裡,聽起來很簡單,但是做起來還蠻複雜的。
首先要將CI預設URI的//之前為空值會自動刪掉的部份做修改(以下轉自諾魯島)。 → /system/libraries/URI.php
//1. 註解掉 function _fetch_uri_string 中的
$path = (isset($_SERVER)) ? $_SERVER : @getenv('PATH_INFO');
//2. 在該行下面加入
$path = '';
if (isset($_SERVER) && isset($_SERVER)) {
$path = str_replace($_SERVER, '', $_SERVER);
} else {
$path = @getenv('PATH_INFO');
}
//3. 將 function _explode_segments() 中的 if ($val != ”) 註解掉
這段改好之後,你在controller裡加上的$var/就不會因為空值被刪掉,再來,就是中文顯示的問題。
因為CI內建的一些功能沒有限制很多,所以也建議不要寫死(上述那個有用到再改,目前還不知道怎麼拉出來做),在中文設定上自己建一個MY_URI(要在網址列上傳中文)。
class MY_URI extends CI_URI {
function _filter_uri($str)
{
if ($str != '' && $this->config->item('permitted_uri_chars') != '' && $this->config->item('enable_query_strings') == FALSE)
{
$str = urlencode($str); //編碼(解決url中文字問題)
if ( ! preg_match("|^[".str_replace(array('\\-', '\-'), '-', preg_quote($this->config->item('permitted_uri_chars'), '-'))."]+$|i", $str))
{
show_error('The URI you submitted has disallowed characters.', 400);
}
$str = urldecode($str); //解碼
}
// Convert programatic characters to entities
$bad = array('$', '(', ')', '%28', '%29');
$good = array('$', '(', ')', '(', ')');
return str_replace($bad, $good, $str);
}
}
這樣就可以解決中文問題。分頁的部份目前是解決了一大半,還好同事有看到這篇文章,不然應該還是卡在那邊了 囧>
參考網站:諾魯島
好吧~我知道我又很久沒更新了,因為我也一個月沒碰到code,這一個月我都在QC,眼睛都花了!今天碰到久圍(?)的code感覺好親切(喂),不過今天只是做個開頭的筆記,因為我對Framework感到很害怕不熟,看了一下還是很害怕不太懂,所以特此做個開頭的筆記,好讓自己以後有地方可以快速查資料。
相關網站:CodeIgniter非官方繁體中文討論區、CodeIgniter使用手冊1.7.2、小惡魔 – 電腦技術 – 生活日記 – 美食介紹 – AppleBOY
雖然現在瀏覽器是百家爭鳴的局面,但大宗還是以IE為主,沒辦法誰叫WINDOWS一出場就是包有IE呢(攤手)。
因為最近在玩Google Wave,所以會去試哪些瀏覽器比較好用,這東東當然還是首推Google Chrome(自家瀏覽器有做Java效能最佳化嗎~),但是用Chrome、FireFox這類的瀏覽器麻煩的地方就在於如果該網頁是IE Only的話,該怎麼辦?FireFox有IE tab,那Chrome呢?
最近在逛別人的blog文章留言時發現了這個好站,提供了很多Chrome的plug-in,很多人還是會選FireFox的原因就是因為Chrome不像FF一樣有自主性的擴充套件。但在這個站有提供for Chrome的IE tab,不過這個網站是非Google官方的,且版本要是4.0以上(也就是開發版),要不要用就自己決定囉。
點這裡安裝Chrome IE tab(只適用4.0以上的版本)
相關網站:Google Chrome Extensions(裡面都是英文,如果得了看到英文就會死的病請不要進入)
參考文章:重灌狂人 Chrome Plus
好好好,就說是筆記了,這東西我相信SQL有認真上課的人都會知道不認真的話就會跟我一樣。
示範如下:
SELECT Distinct [欄位名稱] FROM [資料表]
這個語法的好處是可以讓你馬上把一堆重覆的筆數去掉,好讓你可以用這語法撈出來的資料去做join這類的篩選動作。要注意的是,若接著SELECT DISTINCT後面有指定兩個以上的欄位,則要符合所有欄位值皆同樣重複的情況下該筆資料才會被捨棄(若只有其中一個欄位值相同但其它欄位值並不同,則仍會取出該筆資料。)。簡單來說,如果要做多個欄位的話,只有一個欄位是重覆的情況下,是沒用的。
參考網站:SQL教學

Categories
Tag Cloud
Blog RSS
Comments RSS
Last 50 Posts
Back
Back
Void « Default
Life
Earth
Wind
Water
Fire
Light 