xajax基础心得


转自:http://spaces.msn.com/blackwoodk ... 2wpZwYtrg!169.entry

最近研究了一下ajax,最后选了xajax作为基本class
参考站点:http://xajax.sourceforge.net

因为基本都是gb2312所以把xajax.inc.php里面的编码改了一下,不过老实说UTF-8不错:
$this->xml = "<?xml version="1.0" encoding="GB2312"?>";
重新封装了一下KaneXajax类,
除此以外基本没怎么改动。

<?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);
?>
一个最基本的php就ok了,当然tpl里面<{$xajax_javascript}>要加到<HEAD></HEAD>之间

再说说基本的方法吧:

* addAssign($sTargetId,$sAttribute,$sData)
设置$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)
预制$sTargetId元素的$sAttribute属性为$sData,老实说,没在实战中用过呢,呵呵

$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)
创建$sParentId元素的一个新的子元素,其name为$sTagname,Id为$sId,类型为$sType

$objResponse->addCreate("form1","input", "pass", "password");
* addRemove($sElementId)
移除$sElementId元素

$objResponse->addRemove("div1");
* addAlert($sMsg)
弹出一个内容为$sMsg的提示框

$objResponse->addAlert("This is some text");
* addScript($sJS)
执行一段javascript

$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呢?

过两天再把改好的一些代码贴上来吧,感觉还有的优化
posted on 2006-09-13 22:22 JRobot 阅读(232) 评论(0)  编辑  收藏 所属分类: xml相关

只有注册用户登录后才能发表评论。


网站导航: