2008年6月25日 星期三

XAJAX初探(二)使用

雖然XAJAX已經盡力把複雜的AJAX改成熟悉PHP的寫法

但在即時處理上,還是得靠JAVASCRIPT來協助,就是著名的【觸發事件】

先舉各常常用到的事件

觸發事件像是踩到地雷就爆炸的情形一樣

只是在這邊,觸發事件有很多情況

以上面表格為例

當希望在step2的表格內,能立即做反應,就必須考慮到有幾種事件是會影響到step 2

第一種:直接用滑鼠點選step 2,所以就必須使用<input type="text" name="step2" onclick="">

第二種:先選step 1,然後用tab鍵移到step 2,就必須使用<input type="text" name="step2" onfocus="">

第三種:輸入完step2,使用tab鍵移到step 3或者用滑鼠點開,就必須使用<input type="text" name="step2" onblur="">

當然以下還有很多的觸發事件,例如:onchange=""

單看要在什麼時候呼叫程式立即做處理

決定好事件之後,就要開始呼叫副程式來處理,我們剛剛輸入的數值,語法是

<input type="text" name="step2" onclick="xajax_myFunction(xajax.getFormValues('myForm'));" >

我們拆開來看onclick=""是事件類別

xajax_myFunction()是呼叫剛剛註冊好的副程式($xajax->registerFunction("myFunction");)

當然可以取別的名字,只要前面註冊就OK

xajax.getFormValues('myForm')這個就是傳回表格(myForm)裡面所有值

所以記得在寫<form method="POST" action="" name="myForm">給它一個名字

xajax_myFunction(xajax.getFormValues('myForm')); 請把它看成呼叫一段副程式

當然也可以只傳變數xajax_myFunction($i,$j);

如果一個事件不過癮,可以多加幾個

<input type="text" name="step2" onclick="xajax_myFunction(xajax.getFormValues('myForm'));" onBlur="xajax_myFunction3($i,$j'');" onFocus="xajax_myFunction(xajax.getFormValues('myForm'),$i,$j);">