在Joomla2.5中运行简单的AJax调用。
加载 Mootools
Joomla系统自动加载Mootools1.3.2.如果系统没有加载,我们可以手动加载:
JHTML::_('behavior.mootools');
JHTML::_('behavior.framework',true);
MooTools 要求的类
我们用Request的构造函数来构造Request对象。构造函数接收一个参数,选项,用这个参数来设置我们的Request对象。
var url="index.php?option=com_hello&format=raw&task=listFilelds";
var data='name=Myname&age=23';
var request = new Request({
url:url;
method:'post',
data:data,
async:true;
onSuccess:function(responseText)
{
document.getElementById('fields-container').innerHTML=responseText;
}
}).send();
在上面的代码中,listFields 应该出现在controller.php中。
一把情况下,POST是默认设置。async默认为true.如果默认的选项满足我们的要求,那么我们可以在构建对象的,直接忽略掉这个选项。
var url="index.php?option=com_hello&format=raw&task=listFields";
var data='name=MyName&age=23';
var request= new Request(
{
url:url,
data:data,
onSuccess:function(responseText)
{
document.getElementById('fields-container').innerHTML = responseText;
}
}).send();
onSuccess这个事件当请求成功完成时才触发。还有其他的一些类似的事件也是可以用的。比喻说:onRequest,onFailure,onTimeout等等。
下面是点击事件触发的源代码:(tmpl/default.php的<script>标签中)
Function runButton()
{
var iname = document.getElementById('idname').value;
var iage = document.getElementBYId("idage").value;
var url="index.php?option=com_hello&format=raw&task=listFields";
var data="name="+iname+'&age='+iage;
var request= new Request({
url:url,
method:'get',
data:data;
onSuccess:function(responseText)
{
document.getElementById('fields-containner').innerHTML=responseText
}
}).send();
}
listFields:是一个函数,这个函数定义在controller.php中。
public function listFields(){
$name1 = JRequest::getVar('name','','get','cmd');
$age1 = JRequest::getVar('age',",get",'cmd');
echo 'name='.$name1;
echo 'age=$age1';
}