Ajax 使用prototype.js 1
ajax在使用上因為不同的browser會有不同的XMLHttpRequest物件
所以在設定上會顯的麻煩
而prototype.js就是一個方便的script framework可以讓你不用考慮環境上的因素
而進行快速的ajax開發
prototype的官方網站
這裡有api 可以下載回來看
一.簡介prototype.js
1.$("物件id") = document.getElementById("物件id")
ex.
$("物件id").getValue() = document.getElementById("物件id").value
function請參考api
2.$A("物件Name") = document.getElementByTagName("物件Name")
這個工具元件可以取得所有"物件Name"所有底下物件的Array
ex.
var paras = $A(document.getElementsByTagName('物件Name'));
paras.each(Element.hide);
$(paras.last()).show();
3.$F("物件id") = document.getElementById("物件id").value;
4.$H("名稱") 是一個hash
ex.
var h = $H({ version: 1.5, author: 'Sam Stephenson' });
h.each(function(pair) {
alert(pair.key + ' = "' + pair.value + '"');
});
這會出現二個alert視窗,第一個是version = 1.5 第二個是author = SamStephenson
二.ajax使用prototype
來個簡單的例子應該很容易就理解了
new Ajax.Request('response.jsp',{
method: 'get',
parameters: {'id':'456'},
onSuccess: function(transport) {
$("msg").update(transport.responseXML);
}});
說明
1.method 可以用post跟get二種
2.parameters可以傳入{'id':'456'} ==>response.jsp?id=456
這裡可以利用json的方式傳入,但json.js會跟新版的prototype.js衝突
建議可以直接使用prototype的function來做{'id','456'.toJSON()}
或者
['a', {b: null}].toJSON();
//-> '["a", {"b": null}]'
利用toJSON可以防止脫溢符號的攻擊
3.onXXXXX可以參考api
onSuccess:function(transport)
當成功回應時要做什麼動作
transport有三個response是responseXML跟responseText,responseJSON (Server端記得要設定response的ContentType)
onFailure:function()
當Server出現Exception時會執行這個function
ps.responseText.evalJSON()可以轉換成json格式
三.$("物件id").update(內容)
ex
$("物件id").update(transport.responseText)
會更新"物件id"裡的內容
以上是比較常用的幾個function
請問parameters: {’id’:'456′},可不可以同時也放Form.serialize(form1),要自訂的參數也要form裡的欄位
[回應]
yku Replay:
八月 29th, 2009 at 8:27 下午
我不太看的懂你的意思le…
[回應]
paramaters : 參數列,Form.serialize(form1)都要的話,怎麼寫?
[回應]
yku Replay:
八月 29th, 2009 at 8:26 下午
paramaters:Form.serialize(form1)
應該就可以了
如果你要更簡單的方式
你可以把form都設計好.,…然後call
$(’person-example’).request({
onComplete: function(){ alert(’Form data saved!’) }
})
來實作ajax 記得form的onsubmit=”return false;”
就可以用了…更簡單
[回應]