實質上鼓勵一下吧

目前分類:PHP (17)

瀏覽方式: 標題列表 簡短摘要

用Web寫應用程式比較不爽的就是不能像Windows程式那樣自由自在,想跳窗就跳一個,尤其是在做資料維護畫面的時候,雖然跳轉畫面也是個解決辦法,但順暢度總是比不上Windows程式來得流暢。

jQuery提供了overlay的工具,應用在Yes/No的對話框也不成問題,但是如果想要讓對話框裏面還可以維護資料,那就是個大工程了。我希望能看到如下畫面:

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

魔鬼總是藏在細節裡!

複選方塊又稱為核取方塊也就是checkbox,當你需要多個複選方塊在同一個form裡面的時候,和ASP的習慣不同,要用類似以下的方法:

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

CodeIgniter提供了很多內建的元件庫可以用,Pagination就是其中一個,雖然展現的方式我們未必滿意,但是畢竟是內建的東西,當然要研究一下了。

$config['base_url'] = '/vender/gridview/';
$config['total_rows'] = $this->mdl_vend->get_listcount($searchterm);
$config['per_page'] = $pagerows; 
$this->pagination->initialize($config); 

$data['pagination'] = $this->pagination->create_links();

按照官方文件上大概是這樣設定,不過它還需要告訴pagination頁碼是在第幾個網址上,還有官網上所寫的PageNo實際上應該是RowNo才對。另外官網上是直接用count查詢結果的方式知道資料筆數,不過我喜歡用MySQL的LIMIT特性,理論查到的資料筆數應該就只有一頁,所以另外加了一個專門算筆數的函式,這樣應該可以減輕一點伺服器的負擔。

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

在PHP裏面如果想要使用MVC方式開發應用程式,其中一個選擇就是使用CodeIgniter這個平臺,如果要問我為甚麼不用Zend Framework,其實就是我沒有那麼多的時間同時研究那麼多東西,不過大概看了一下幾乎都差不多,就是平臺提供的工具和語法稍有差異而已,基本上都是一樣的。

我在學習一個新的東西的時候,不喜歡一下子弄太大,先找個小例子測試用這個工具要怎樣達成,把開發模式固定下來之後再實際製作大專案,這樣可以節省不少的時間。

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

用jQuery就要使用它的插件來發揮最大的威力,其中jQuery Tools是一個相當棒的工具,幾乎你能夠用到的東西它都有,有興趣可以看看它的功能展示。

jQuery Tools可以用來顯示Yes/No dialog,用起來也並不困難,不過沒有自己試過也根本玩不出來。首先建立你的HTML頁面:

漠哥 發表在 痞客邦 PIXNET 留言(1) 人氣()

在寫HTML表單的時候,每一個欄位都要給ID,否則<label>的for屬性沒有作用,而資料送到後端的時候,偏偏取的又是name,於是寫表單就一直重複同樣的ID和NAME,真是痛苦呀。

想到一個偷懶的方法,我只要設定NAME就好,ID就和NAME一樣就可以了,這樣寫起來輕鬆很多,而且也不容易出錯。

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

微軟的string.format實在太好用了,在寫javascript的時候也忍不住想要用它,使用了擴充原始物件的寫法,請享用:

String.prototype.format = function () {
    var str = this;
    for(var i=0;i<arguments.length;i++) {
        var re = new RegExp('\\{' + (i) + '\\}','gm');
        str = str.replace(re, arguments[i]);
    }
    return str;
}
//用法範例
var a = '欄位 {0} 必須要輸入!',field='fieldname';
alert(a.format(field));

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

微軟的MVC架構喊得紅紅火火,PHP當然也不遑多讓,網路上有很多的平臺提供MVC的功能,例如zendCodeIgniter都是相當知名的,而且還是開放源碼,拿來研究的確會讓自己功力進步不少。不過裏面的程式碼通常都非常艱澀難懂,要看懂它自己的底子一定要夠硬才成。

要用PHP達到MVC的開發架構,最重要的原理就是讓網址變成/Control/Action/Params的方式,這個對現在的網站來說非常重要,因為SEO就是喜歡這樣格式的網址,要達到這個目的有兩個重要的步驟。

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

ASP.NET中的MasterPage實在是太好用了,而在PHP裏面如果只是用傳統的方法,那麼只能夠把主要版面分段,然後個別使用include()的方式將主要版面湊出來,總覺得說不出來的彆扭。而且如果切割不好,那麼主要版面一旦改版,那麼內容頁就會改到死。使用傳統方法的程式碼大概像這樣:

<body>
<div><?php include('menu.php');?></div>
<div><?php include($page_content);?></div>
<div><?php include('footer.php');?></div>
</body>

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

由於最近漠哥我開始從萬惡的微軟帝國開始轉戰到PHP上面去發展,按照以前的習慣就是到重慶南路去找書籍,最好是有範例集這樣的書,可以減少我學習的時間。但是到天龍書局一看整個傻眼,PHP相關書籍只有十本不到,而且每一本都幾乎差不多,到隔壁的簡體書店也找不到幾本有用的,這才深深的體會到台灣的資訊環境已經完全被微軟所佔領。

我會轉戰PHP一個很重要的原因,就是它的成本低,又因為我在上海待了很長的時間,可以感覺到PHP在中國市場的佔有率,而且世界上的超大型網站幾乎都是使用PHP所開發出來的,而我正在開發一個大型網站,這麼多的原因,使我不得不放棄使用了數十年的微軟開發環境。

漠哥 發表在 痞客邦 PIXNET 留言(5) 人氣()

一般我們在寫網頁,表格的數量都是相等而且可控制的,但偶爾會遇到每一行的<td></td>數量是不固定的情況,例如在製作報表的時候,如果沒有將不足的行補滿,表格將會呈現出殘缺的狀況,非常難看。

這在ASP.NET有內建的類別可以處理這樣的問題,而PHP卻沒有內建的方法,必須自己去拼湊,當然每次硬寫程式碼解決也行,但維護起來就會非常痛苦。直接實做ASP.NET的類別是解決這個問題的根本之道。

<?PHP
class HtmlTag {

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

這個資料也是搞很久,目的是我在XP上面同時需要開發多個網站,Apache伺服器又沒有很好的圖形化介面,需要自己修改設定檔案。網路上的方案不少,但是很多都試不成功。

首先要修改C:/windows/system32/driver/etc/host這個檔案,讓你這台電腦同時代表很多主機。

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

寫Web應用程式的時候就是必須考慮到使用者操作的方便性,如果要讓使用者在網頁上輸入大量資料,特別是數字居多的情況下,讓使用者能夠只用數字鍵盤來操作是最好的方案。說起來簡單,就是在接收到Enter鍵(keycode=13)時將按鍵變成Tab鍵(keycode=9),你可以在google大神上面找到非常多種方法,不過都是半吊子,有些限制瀏覽器,有些會讓blur()的行為失效。

在我試了很久之後,終於找到一個完整的解決方法。

漠哥 發表在 痞客邦 PIXNET 留言(3) 人氣()

前端資料可以用前一篇所介紹的方法進行大部份的驗證,但是還有一些必須要靠後端的資料比對才能做到,最直接的方法就是使用AJAX技術,jQuery提供了很簡單的AJAX呼叫函數,用起來也沒有什麼痛苦。繼續前一篇的例子,我希望能夠在使用者輸入完帳號的時候確認這個帳號在系統中還沒有任何人使用,因此在username這個文字盒離開的時候綁上一個處理函數。

$("#username").blur( function() {

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

程式主體按照前面的寫法佈局完成之後就比較不會亂了,程式設計師可以很容易的用複製檔案的方式繼續完成每一個頁面細節的部份。而細節的部份很多都是讓使用者輸入的表單,這就需要規範出表單的寫法以及驗證的方式。表單的寫法可以用表格(<table></table>)或區塊<div></div>或欄位集<fieldset></fieldset>的方式,用區塊的方法就是將表單的排版工作交給style去處理,各有好處這裡不做評比與探討。以表格的方法為例子。

<div id="wrapper">

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

PHP和ASP是個很類似的東西,它都是一個以頁面為主的動態網頁開發程式,以前ASP寫了好幾年,也知道ASP的程式很不容易管理,就是一個散亂可以形容。但是從另一個角度來看,這樣的程式語言就是單純,什麼都是你很容易控制的。既然是重新轉戰,那麼就要將最新的技術整合進開發環境裏面,包含了SEO、AJAX、jQuery、網頁標準化等等。最好還能像ASP.NET一樣可以讓我們在開發的過程中少管一些事情。

先從SEO來考慮,SEO所談的東西很多,目的就是讓我們的網站能夠在搜尋引擎用關鍵字查詢時能夠排名在越前面越好,手法上就比較簡單,第一點就是要在每個頁面上加上meta標籤包含keyword、title、description這三個讓搜尋引擎更容易查詢的東西。

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

撐了好久,終於決定將開發環境換到PHP了,以前總覺得PHP就只是ASP程度的開發環境而已,而且最好是運作在Linux作業系統上,所以遲遲沒有動手,不過說穿了就是懶得學習新的東西。現在因為當了個體戶,總是要對市場增加點敏銳度,Linux的低成本是一個重要的考慮因素,以前用微軟解決方案客戶至少需要Windows Server+SQL Server兩個軟體,光是軟體成本就要十幾萬了,報價出去對於小客戶來說真的是會嚇到他們,相對來說只能夠壓縮自己的利潤。另一方面,由於大陸市場Linux和Windows其實是五五波,不過官方更傾向於Linux,這對於積極擁抱大陸市場的台灣來說Linux又加分了不少。最重要的是最近jQuery的出現,使得PHP的開發環境變得更加成熟,相對的ASP.NET對於jQuery的支援卻變得有點勉強,畢竟ASP.NET已經做了太多事情,反而讓jQuery有不太用得上的感覺。

畢竟用了Windows已經好幾十年了,說要移轉也不是那麼容易的事情,所以當然先考慮能夠在Windows環境下開發會比較容易一點。所幸所有會用到的軟體都可以在網路上免費下載,包含了Apache、PHP、MySQL這三個PHP開發必須要用到的主要軟體。

漠哥 發表在 痞客邦 PIXNET 留言(0) 人氣()

找更多相關文章與討論