2007年7月23日 星期一

jQuery : Use the JSON to complete Form.

在開發Web時, 我們常常需要從server site將data將資料取出, 並填到HTML的form上面.
在這邊, 介紹用jQuery(一個非常火紅JavaScript的library), 搭配JSON, 來做到這一件事情.
整各的機制運作, 可以分為下面幾各步驟,

1. client用HTTP Get method像server request data.
2. server將response data轉成JSON format傳回給client.
3. client parse JSON data, 轉成form element value, 並且顯示在browser上面.

在這邊, 我們會用幾各tool, 來幫助我們.
jQuery : 一各現在很紅, 非常優秀的JavaScript Library. 他希望能幫助Web開發時, 能夠write less, do more.
jQuery Form Deserialization plugin : 一各jQuery library, 可以幫助我們將JSON的array or hash轉成form element的value.
JSON : 全名是JavaScript Object Notation, 他是一各輕量化的data-interchange的格式,
他除了可以很容易讓人們讀寫外,也可以很容易讓language parse and generate. 最重要的是JavaScript的標準, 所以可以很自然的用在JavaScipt的應用中.

在jQuery中, 我們只需要用到兩各method就可以很輕易的做到這一件事情了.
$.getJSON(url, params, callback) --> Load JSON data from HTTP GET request.
在getJSON callback function中用, deserialization plugin所提供的method,
$(form id).deserialize(json data), 就完成了.

下面是一各簡單的HTML example.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="deserialize.js"></script>

<script type="text/javascript">
//<![CDATA[
window.onload = function(){
// AJAX get the data form server
$.getJSON("goform/formGet", function(json) {
/*
$.each(json, function(n, v) {
alert(n +'=' +v);
});
*/
$('#myForm').deserialize(json);
});
};
//]]>
</script>
</head>

<form id="myForm" action="goform/formPost" method="post">
Name: <input type="text" name="name" />
Comment: <input type="text" name="address">
<input type="submit" value="Submit" />
</form>
</html>


另外, goform/formGet, 這一各HTTP GET 所得到的資料為.
HTTP/1.0 200 OK
Server: GoAhead-Webs
Pragma: no-cache
Cache-control: no-cache
Expires: 0
Content-Type: application/json

{name: "Jimmy", address: "Taipei, Taiwan"}

2007年7月21日 星期六

Firebug : a best Mozilla plguin for Web Dev.

最近在工作上, 被老闆教導要使用AJAX這樣比較新的WebDev方式去開發,我們產品的Web .
AJAX雖然帶來很多好處, 因為AJAX是base在JavaScript上面,
這也讓寫Web不在是單純的寫寫HTML, 而是比較像是程式開發. (coding的人又有出路了)
在這各情況下面, 一個Web 專用的debuger就很需要. 而firebug, 就是WebDev人的救星.
firebug, 是一個Mozilla上面的plugin, 他就像我們寫code的debuger一樣. 可以單步執行JavaScript.
或者動態去修改/顯示HTML/DOM/JavaScript的內容.
有了這各, 真的讓現在充滿大量JavaScript(AJAX)或DOM的WebDev變得可行.

想要作WebDev的人, 強烈推荐一定要裝firebug來用.

Firebug 的首頁在 http://getfirebug.com/

另外, 這邊有一個不錯的使用說明的文章.
http://caterpillar.onlyfun.net/Gossip/AjaxGossip/FireBug.html
還有教學影片
"Debugging JavaScript with Firebug"