雖然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);">