xajax基礎(chǔ)心得
轉(zhuǎn)自:http://spaces.msn.com/blackwoodk ... 2wpZwYtrg!169.entry 最近研究了一下ajax,最后選了xajax作為基本class 參考站點(diǎn):http://xajax.sourceforge.net 因?yàn)榛径际莋b2312所以把xajax.inc.php里面的編碼改了一下,不過老實(shí)說UTF-8不錯(cuò): $this->xml = "<?xml version="1.0" encoding="GB2312"?>"; 重新封裝了一下KaneXajax類, 除此以外基本沒怎么改動(dòng)。 <?php require_once(‘Smarty/Smarty.class.php‘); require_once(‘Xajax/xajax.inc.php‘); function myFunction($arg) { $objResponse = new xajaxResponse(); $objResponse->addAssign("SomeElementId","innerHTML", $newContent); return $objResponse->getXML(); } $Kanexajax = new KaneXajax(); $Kanexajax->registerFunction("myFunction"); $Kanexajax->processRequests(); $KaneSMARTY = new KaneSmarty(); $KaneSMARTY->assign(‘xajax_javascript‘, $xajax->getJavascript()); $KaneSMARTY->display(myTEMPLATE); ?> 一個(gè)最基本的php就ok了,當(dāng)然tpl里面<{$xajax_javascript}>要加到<HEAD></HEAD>之間 再說說基本的方法吧: * addAssign($sTargetId,$sAttribute,$sData) 設(shè)置$sTargetId元素的$sAttribute屬性為$sData,常用的有div的innerHTML,input的value什么的。 $objResponse->addAssign("contentDiv","innerHTML","Some Text"); $objResponse->addAssign("checkBox1","checked","true"); * addAppend($sTargetId,$sAttribute,$sData) 追加$sData到$sTargetId元素的$sAttribute屬性上 $objResponse->addAppend("contentDiv","innerHTML","Some Text"); * addPrepend($sTargetId,$sAttribute,$sData) 預(yù)制$sTargetId元素的$sAttribute屬性為$sData,老實(shí)說,沒在實(shí)戰(zhàn)中用過呢,呵呵 $objResponse->addPrepend("contentDiv","innerHTML","Some Text"); * addReplace($sTargetId,$sAttribute,$sSearch,$sData) 替換$sTargetId元素的$sAttribute屬性中的$sSearch為$sData。 $objResponse->addReplace("contentDiv","innerHTML","text","<strong>text</strong>"); * addClear($sTargetId,$sAttribute) 清空$sTargetId元素的$sAttribute屬性 $objResponse->addClear("Input1","value"); * addCreate($sParentId, $sTagname, $sId, $sType) 創(chuàng)建$sParentId元素的一個(gè)新的子元素,其name為$sTagname,Id為$sId,類型為$sType $objResponse->addCreate("form1","input", "pass", "password"); * addRemove($sElementId) 移除$sElementId元素 $objResponse->addRemove("div1"); * addAlert($sMsg) 彈出一個(gè)內(nèi)容為$sMsg的提示框 $objResponse->addAlert("This is some text"); * addScript($sJS) 執(zhí)行一段javascript $objResponse->addScript("var txt = prompt(‘get some text‘);"); $objResponse->addScript("window.location=""."demo.php?id=1"."";"); 這兩天用PHP+SMARTY+XAJAX寫了一些小東西,感覺上就是調(diào)試完全靠感覺,不過 按照DB的debug,Smarty的debug,xajax的debugOn(),的步驟,一步步地測(cè)好再往下寫會(huì)好很多 因?yàn)椋瑂marty已經(jīng)夠敏感,經(jīng)常給你一張大白臉,而xajax更加敏感,任何的地方有一點(diǎn)小錯(cuò)誤,他立刻完蛋,這樣的女人娶回家真是挺可怕的,不過誰讓她支持Smarty呢? 過兩天再把改好的一些代碼貼上來吧,感覺還有的優(yōu)化 |