XAJAX 编程入门实例两则

XAJAX是一个比较优秀的AJAX toolkit工具,安装很简单,就是吧他的xajax.inc.php文件copy到你制定的目录下面就可以了。
下面举两个列子来说明如何使用

1)helloworld
helloworld是每一个编程语言所必须的,所以这里也不例外,我会就代码给出解释
[coolcode]
addAssign(“div1″,”innerHTML”,$text); #给id为div1的html元素的innerHTML属性分配$text指,其他的方法请参考前面贴出的XAJAX介绍

return $objResponse->getXML(); #返回赋值后的代码,采用xml格式
}

// Instantiate the xajax object. No parameters defaults requestURI to this page, method to POST, and debug to off
$xajax = new xajax();

//$xajax->debugOn(); // Uncomment this line to turn debugging on

// Specify the PHP functions to wrap. The JavaScript wrappers will be named xajax_functionname
$xajax->registerFunction(“helloWorld”); #注册函数,这个也是必须的,用来保证,javascript能调用php里面的函数
// Process any requests. Because our requestURI is the same as our html page,
// this must be called before any headers or HTML output have been sent
$xajax->processRequests();
?>


xajax example
标签之前,否则无法工组
$xajax->printJavascript();
?>

 





[/coolcode]

上面的脚本是一个简单的例子,但是体现了XAJAX使用的一个流程。需要注意的是在html脚本中,我们调用的函数名是
xajax_helloWorld(),但是我们编程和注册的函数名却是helloWorld,这不是一个错误,而是必须这样做,你可以查看xajax.inc.php的代码就知道,他默认的在html调用的函数名前缀就是xajax_helloWorld(),因此如果你不修改xajax.inc.php,那么你在html里面调用函数就必须加上xajax_这样的前缀。

程序演示

2)表单处理
这个例子是我花时间比较多的,也是大家比较关心的,虽然官方也给出了一个form的例子,但是对表单数据的处理都是自己再重新写的函数,而没有使用xajax.getFormValues函数,个人觉得比较复杂。下面是官方的form演示和源代码

form演示

form源代码

下面是我的代码
[coolcode]
$value)
if (empty($str))
$str.=$key.”='”.$value.”‘”;
else
$str.=”,”.$key.”='”.$value.”‘”;
//$str=”form data is “.implode(“,”,$formData);
//$objResponse->addAlert(print_r($formData));
$objResponse->addAssign(“result”, “innerHTML”, $str );
return $objResponse->getXML();
}

function hb()
{
$objResponse = new xajaxResponse();
$objResponse->addAssign(“doIt”, “value”, “Working…”);
$objResponse->addAssign(“doIt”, “disabled”, true);
$objResponse->addScript(“xajax_doSomething(xajax.getFormValues(‘someForm’));”);

return $objResponse->getXML();
}

?>
debugOn();
$xajax->registerFunction(“doSomething”);
$xajax->registerFunction(“hb”);
$xajax->processRequests();
?>


printJavascript(); ?>

username:
password:


[/coolcode]

这个要注意的比较多
a)表单的元素必须有name属性,这个一定要注意,这是我痛苦了一天得到的结果,否则getFormValues函数将得不到表单数据。
b) doSomething($formData)函数中的参数$formData是一个数组元素,索引是表单元素的名称(属性name的值),其值是表单元素的值(属性value的值)
c) 如果debugon打开了,可能会出现死循环的警告窗口,目前还不知道原因。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据