网拾社区 - PHP & Mysql - xajax基础心得

来源:百度文库 编辑:神马文学网 时间:2024/04/28 12:42:21
xajax基础心得
转自:http://spaces.msn.com/blackwoodk ... 2wpZwYtrg!169.entry
最近研究了一下ajax,最后选了xajax作为基本class
参考站点:http://xajax.sourceforge.net
因为基本都是gb2312所以把xajax.inc.php里面的编码改了一下,不过老实说UTF-8不错:
$this->xml = "";
重新封装了一下KaneXajax类,
除此以外基本没怎么改动。
WEB CODE  [Copy to clipboard]
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);
?>
一个最基本的php就ok了,当然tpl里面<{$xajax_javascript}>要加到之间
再说说基本的方法吧:
* addAssign($sTargetId,$sAttribute,$sData)
设置$sTargetId元素的$sAttribute属性为$sData,常用的有div的innerHTML,input的value什么的。
WEB CODE  [Copy to clipboard]
$objResponse->addAssign("contentDiv","innerHTML","Some Text");
$objResponse->addAssign("checkBox1","checked","true");
* addAppend($sTargetId,$sAttribute,$sData)
追加$sData到$sTargetId元素的$sAttribute属性上
WEB CODE  [Copy to clipboard]
$objResponse->addAppend("contentDiv","innerHTML","Some Text");
* addPrepend($sTargetId,$sAttribute,$sData)
预制$sTargetId元素的$sAttribute属性为$sData,老实说,没在实战中用过呢,呵呵
WEB CODE  [Copy to clipboard]
$objResponse->addPrepend("contentDiv","innerHTML","Some Text");
* addReplace($sTargetId,$sAttribute,$sSearch,$sData)
替换$sTargetId元素的$sAttribute属性中的$sSearch为$sData。
WEB CODE  [Copy to clipboard]
$objResponse->addReplace("contentDiv","innerHTML","text","text");
* addClear($sTargetId,$sAttribute)
清空$sTargetId元素的$sAttribute属性
WEB CODE  [Copy to clipboard]
$objResponse->addClear("Input1","value");
* addCreate($sParentId, $sTagname, $sId, $sType)
创建$sParentId元素的一个新的子元素,其name为$sTagname,Id为$sId,类型为$sType
WEB CODE  [Copy to clipboard]
$objResponse->addCreate("form1","input", "pass", "password");
* addRemove($sElementId)
移除$sElementId元素
WEB CODE  [Copy to clipboard]
$objResponse->addRemove("div1");
* addAlert($sMsg)
弹出一个内容为$sMsg的提示框
WEB CODE  [Copy to clipboard]
$objResponse->addAlert("This is some text");
* addScript($sJS)
执行一段javascript
WEB CODE  [Copy to clipboard]
$objResponse->addScript("var txt = prompt(‘get some text‘);");
$objResponse->addScript("window.location=\""."demo.php?id=1"."\";");
这两天用PHP+SMARTY+XAJAX写了一些小东西,感觉上就是调试完全靠感觉,不过
按照DB的debug,Smarty的debug,xajax的debugOn(),的步骤,一步步地测好再往下写会好很多
因为,smarty已经够敏感,经常给你一张大白脸,而xajax更加敏感,任何的地方有一点小错误,他立刻完蛋,这样的女人娶回家真是挺可怕的,不过谁让她支持Smarty呢?
过两天再把改好的一些代码贴上来吧,感觉还有的优化。