mootools框架里如何使用ajax
ajax可通过直接写源码实现,但有点繁琐,现在流行的ajax框架都集成了ajax的功能,而且写起来非常简单方便。当然mootools也不例外。mootools是一个非常优秀的javascript的库,有些地方跟prototype颇有相似(指按面向对象做js)。mootools的Request实现了对XMLHttpRequest的功能包装类,下面是我写的一个小示例:
function scoring(score){
//var url = document.getElementById("url").value;
var url = 'test';
var pingRequest = new Request({
method: "post",
url: "http://www.nowamagic.net/librarys/veda/",
data: score,
onSuccess: function(responseText){
if(responseText=="success"){
//alert(responseText);
}
else{
//alert(responseText);
}
},
onFailure: function(){
//alert(responseText);
}
});
pingRequest.send("url="+ url +"&score=" + score + "&id=" + id);
}
在后台可以使用$_POST[]来获得ajax传过来的数据。
ajax类的使用:
var ajax = new Ajax(url, options);
ajax.request();
url是提交到后台处理的路径。options有2个经常使用的参数:{onComplete:handleFun,data:postArgs}
function handleFun(req){
alert(req);
}
onComplete参数指向处理返回的文本函数;data(老版本用postBody名)是按doPost方式提交的字符串。
下面用ajax的2种方法提交form表单(相当于点击form中的submit按钮):
<form action="test.php" id="form1">
<input name="user_name" />
<input name="user_id" />
<input type="button" onclick="ajaxSubmit();" />
</form>
方法1:
function ajaxSubmit(){
var postArgs = $('form1').toQueryString();
new Ajax('test.php',
{data:postArgs,onComplete:handleFun}).request();
}
方法2:
function ajaxSubmit(){
var postArgs = $('form1').toQueryString();
$('form1').send({onComplete:showResponse,data:postArgs});
}
$()函数相当于js的document.getElementById(),toQueryString()函数是得到form中提交元素的字符串。
用例1时无需在form中指定action,而必须指定Ajax中的url,例2则必须指定form中action,而无需指定Ajax中的url,另外在 test.php 中接受参数一律用 $_POST[''] 接受即可。
下面再来几个示例:
示例一
<script type="text/javascript">
window.addEvent("domready",function(){
$("send").addEvent("click",function(){
var url="nowamagic.php?areaid="+$("areaidvalue").value+"&say="+escape($("say").value);
// escape()是处理编码函数,没有它传替中文时会出乱码
new Ajax(url,{method:'post',onComplete:function(){
$("Content").innerHTML=this.response.text;
alert('发表成功!');
}}).request();
});
});
</script>
示例二
<script type="text/javascript">
window.addEvent("domready",function(){
$('btnSent').addEvent('click',function(){
if($('txtContent').innerText==''){
alert('发送内容不能空!');
return;
}
var url='Default2.aspx';
var postData=$("postMessage").toQueryString();
new Ajax(url,{method:'post',onComplete:function(){
$('messageBox').innerHTML += this.response.text;
}
}).request(postData);
});
});
</script>
示例三
<script type="text/javascript">
window.addEvent("domready",function(){
$('myForm').addEvent('submit', function(e) {
new Event(e).stop();
if($("message").value==""){
alert('请输入要发送的消息');
return;
}
this.send({
onComplete: function() {
var request=Json.evaluate(this.response.text);
$("messagebox").innerHTML=request.msg;
$("namebox").innerHTML=request.name;
alert('发送成功!');
}
});
}); });
</script>
mootools框架里如何使用ajax的更多相关文章
- "Timeout"在测试框架里是如何被实现的
今天组里的小伙伴问了我一个问题:“我这里有一个底层驱动的接口,我想在测试它的时候加上超时限制,时间一过就fail掉它,执行后面的测试用例.怎么办到呢?”.我问:“它自己没有超时响应的机制么? 超时抛e ...
- struts2框架通过jQuery实现AJAX应用
众所周知,在web2.0时代,哪个web框架要是不跟AJAX沾点边,都不好意思说自己的框架有多么多么NB,当然struts也不例外,从 struts1开始到现在的struts2也都对AJAX有支持.A ...
- javascript之复习(框架里的方法们)
继上次整理,一些东西没有整理完.就写在这.可能比较乱比较杂,因为都是整理的一些东西,也没有到做成专题的程度. 1.String.repeat() 大家要实现重复一个字符串的重复怎么写呢,反正我的第一想 ...
- 将dubbo框架里的服务提供者迁移进k8s里,以docker提供服务时要注意的细节
在将dubbo框架里的服务提供者迁移进k8s时,有几个注意事项: 1, 要为默认情况下,dubbo会将k8s里的pod ip地址作为注册服务的地址,所以这个地址需要被改写(ip测试过,行得通,而dns ...
- unittest框架里的常用断言方法:用于检查数据
1.unittest框架里的常用断言方法:用于检查数据. (1)assertEqual(x,y) 检查两个参数类型相同并且值相等.(2)assertTrue(x) 检查唯一的参数值等于True(3)a ...
- 虚拟DOM解析及其在框架里的应用
虚拟DOM解析及其在框架里的应用 浏览器是怎样解析HTML并且绘出整个页面的 上图为webkit引擎浏览器的处理流程,如上图大致分为4大步: 第一步,HTML解析器分析html,构建一颗DOM树: 第 ...
- easyUi 学习笔记 (二 ) 使用tabs 里datagridview 发送ajax请求 不访问后台的问题
这个BUG 我花了一个半小时, 还是看不出哪里的问题, 于是就百度到这么一段话,我需要记住 <================================================= ...
- [麦先生]在Laravel框架里实现邮箱验证---发送邮件
在经过一段时间的使用后,发现在项目中很多地方需要用到用户验证,以短信验证和邮箱验证为主流趋势,小麦总结了如果在Laravel框架中实现发送邮件功能,以后会陆续更上如何实现短信验证..... 在.env ...
- 简单实用后台任务执行框架(Struts2+Spring+AJAX前端web界面可以获取进度)
使用场景: 在平常web开发过程中,有时操作员要做一个后台会运行很长时间的任务(如上传一个大文件到后台处理),而此时前台页面仍需要给用户及时的进度信息反馈,同时还要避免前台页面超时. 框架介绍: 本架 ...
随机推荐
- JavaSE 第二次学习随笔(二)
循环结构中的多层嵌套跳出 targeta: for(int i = 0; i < 100; i++){ for (int j = 0; j < 100; j++) { if(i + j = ...
- Django调试models输出的SQL语句
django1.3在shell下,调试models变得更为简单了,不用像之前的版本,手工去调用django query,才能打印出之前的代码是执行的什么SQL语句. 1.3开始只需在settings. ...
- 完整的vue+vuex+api-router+database请求流程
- Linux(centos)搭建SVN服务器完美方案及遇到的问题--费元星站长
QQ:971751392 (欢迎交流) linux搭建SVN服务器 安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversion查看安装位置,如下 ...
- LinqToExcel使用简介一
最近才看到原来也可以用Linq来访问Excel,功能还挺强大的.要使用这个功能,首先得下载一个LinqToExcel的相关文件,然后就可以调用相关的方法. 使用前面介 ...
- Django 2.0官方文档中文 渣翻 总索引(个人学习,欢迎指正)
Django 2.0官方文档中文 渣翻 总索引(个人学习,欢迎指正) 置顶 2017年12月08日 11:19:11 阅读数:20277 官方原文: https://docs.djangoprojec ...
- PostgreSQL 数据库升级
PostgreSQL软件版本升级后,需要使用pg_upgrade迁移旧版本的数据库,具体的操作参数可以参考官方文档,在此记录一下操作过程中出现的细节问题: 新版本软件在initdb的时候要保证loca ...
- JDBC剖析篇(1):java中的Class.forName()
一.Class.forName() 在Java中我们一般用下面这样的语句来连接数据库(以MySQL为例) Class.forName("com.mysql.jdbc.Driver" ...
- safari 移动下开启 滚定回弹
-webkit-overflow-scrolling : touch;
- ES6 中 export ,export default 区别
1.export与export default均可用于导出常量.函数.文件.模块等: 2.你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对 ...