辛星浅析一次ajax的实现过程
说到ajax,那绝对是一个老生常谈的话题,近些年ajax技术的使用颇为盛行。
以下我们就以jQuery为例来从一个真实的项目中看一下ajax的实例。
首先是前端页面,这个页面我们使用的是bootstrap和自己的若干技术,最后我们有一个button。它的源码例如以下:
$deal .= '<a href="javascript:void(0);" class="btn btn-danger btn-mini" onclick="deleteOne('.$Id.');">删除</a>';
相信有js基础的朋友们读懂这个代码不是问题。这里须要说明几点:
1.它使用了bootstrap。因此我们会看到诸如btn btn-danger btn-mini这些东西,
2.它调用了一个deleteOne()函数,而该函数中的參数$Id是PHP中的变量。
然后就是这个deleteOne方法的代码,注意这里我们导入了jQuery库。当然另一些其它的库。这里仅仅写当中比較重要的部分代码:
<script type="text/javascript">
var base_url='<?php echo base_url();?>';
$(function(){
deleteOne=function(id,time){
var t='3000';if(isNullOrEmpty(time)){t='3000';}else{t=time;}
var icon='<?php echo base_url();? >assets/dialog/icons/';
showDialog('确定要删除?',function(){
var url='<?=@$site_url.'/'.@$module.'/delete';?>';
var data={'Id':id}
$.ajax({
//async: true,//是否为异步请求
type: "POST",//GET POST
url: url,
//data: data,
data:'Id='+id,
//dataType: "json",
//beforeSend: function(XMLHttpRequest, textStatus){},
success: function(data){//,textStatus
//console.log(data);
var msg=data.message;
//if(data.status){refreshGrid();i='succeed.png';}else{i='info.png';}
showDialog(msg);
window.location.reload();
}
//complete: function(XMLHttpRequest, textStatus){},
/*error: function(XMLHttpRequest, textStatus, errorThrown){
var msg=("Error");i='error.png';
showDialog(msg);
}*/
});
});
}
});
</script>
到这里。我们还差一步就完毕了。就是delete方法,以下是它的实现过程:
public function delete(){
if (! isPost ()) {
$msg='输入的链接不对!
';
showErrorMsg($msg);
}
$action='delete';
$module=$this->module;
$arrLang=lang('common_'.$module);
$title=$arrLang[$action];
$arr_post=$this->input->post();
$arr_post=setForm($arr_post);
$Id=@$arr_post['Id'];
$status=FALSE;
$logType=0;
if(!isNullOrEmpty($Id)){
$del_where=array('ID'=>$Id);
$this->common_model->table='mx_changci';
$result = $this->common_model->delete( $del_where );
if ($result) {
$status = TRUE;
$message = $title.'成功!
';
} else {
$status = FALSE;
$message = $title.'失败!';
}
}else{
$status=FALSE;
$message= $title.'出错!
';
$logType=3;
}
$jsonData['status']=$status;
$jsonData['message']=$message;
header("Content-type: application/json");
echo json_encode($jsonData);
}
这就是我近期參与的项目中的一个简单的ajax的实现
辛星浅析一次ajax的实现过程的更多相关文章
- 辛星浅析跨域传输的CORS解决方式
首先我们有一个概念.那就是"同源准则",也就是same-origin policy,它要求一个站点(协议+主机+port号)来确定的脚本.XMLHttpRequest和Webso ...
- 辛星浅析Linux中的postfix
Postfix是眼下Linux下主流的邮件server,也就是MTA,主要用来实现SMTP协议,它能够兼容sendmail.而postfix也是为了改进sendmail而制作产生的. 通常来说.pos ...
- 辛星浅析raid
我们来分析一下影响计算机性能的主要组件,主要就是CPU.主板的总线IO.内存IO.硬盘IO.网卡IO等等,并且如今CPU的性能已经非常好了,可是计算机的总体的IO性能却较低,严重影响了计算机的性能,如 ...
- 辛星浅析html5中的role属性
我们使用role属性告诉辅助设备.这个元素所扮演的角色.比方点击的按钮,我们通常就使用role="button",会让这个元素可点击. 可是它很多其它的是用来增强语义性,当现有的h ...
- 辛星浅析yaf框架中的类的自己主动载入问题
因为公司非常多项目都是基于yaf的,而非常多刚接触yaf的朋友问的第一个问题就是:yaf的自己主动载入是依照什么规则来的. 鉴于此.于是我特别开了一篇博文来记录一下. 首先在yaf中.models文件 ...
- 2014年辛星jquery解读第三节 Ajax
***************Ajax********************* 1.Ajax是Asynchronous Javascript And XML的简写,它指的是异步Javascript ...
- 2014年辛星完全解读Javascript第一节
***************概述*************** 1.Javascript是一种原型化继承的基于对象的动态类型的脚本语言,它区分大小写,主要运行在客户端,用户即使响应用户的操作并进行数 ...
- 2014在辛星Javascript口译科
***************概要*************** 1.Javascript是一种原型化继承的基于对象的动态类型的脚本语言,它区分大写和小写.主要执行在client,用户即使响应用户的操 ...
- 浅析JSONP-解决Ajax跨域访问问题
浅析JSONP-解决Ajax跨域访问问题 很久没有写随笔了,总是感觉没时间,其实时间就是...废话少说,前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现 ...
随机推荐
- python读取excel学习(1)
#coding=gbk #coding=utf-8 import xlrd table = xlrd.open_workbook(r'E:\test.xlsx') #sheet = table.she ...
- Linux文件属性和压缩解压
目 录 第1章 Linux系统文件的属性 1 1.1 命令ls 1 1.2 inode 2 1.3 文件属性 2 1.4 env命令 2 1.5 注意: 2 第2章 ...
- 【HIHOCODER 1605】小Hi的生成树计数
描述 小Hi最近对生成树(包含所有顶点的联通无环子图.)非常的感兴趣,他想知道对于特定的简单平面无向图是不是存在求生成树个数的简单方法. 小Hi定义了这样的图:一个以{0,1,2--n}为顶点的图,顶 ...
- POJ 3259 Wormholes(负权环路)
题意: 农夫约翰农场里发现了很多虫洞,他是个超级冒险迷,想利用虫洞回到过去,看再回来的时候能不能看到没有离开之前的自己,农场里有N块地,M条路连接着两块地,W个虫洞,连接两块地的路是双向的,而虫洞是单 ...
- redis异常信息:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk.。。。。
redis.exceptions.ResponseError: MISCONF Redis is configured to save RDB snapshots, but it is current ...
- ArrayList练习之存储字符串并遍历
在myArrayList项目下 新建一个包 在这个包中新建一个类:ArrayListDemo4.java ArrayListDemo4.java import java.util.ArrayList; ...
- bzoj2973 入门oj4798 石头游戏
我们人为地搞出来一个全能神,每次调用他他可以给一个节点 \(1\) 个石头. 这样,当前的状态就可以由上一秒的状态搞过来,这就像是一个递推.用矩阵加速. #include <iostream&g ...
- 【模拟】2017 Multi-University Training Contest 1 The Battle of Chibi
acm.hdu.edu.cn/showproblem.php?pid=5542 [Accepted] #include<iostream> #include<cstdio> # ...
- 自定义PHP错误报告处理方式
<?php //在php中注册一个函数, 来处理错误报告, 而不按原来的方式处理了 set_error_handler("myerrorfun"); $mess = &quo ...
- 使用HttpWebRequest post数据时要注意UrlEncode
今天在用HttpWebResponse类向一个远程页面post数据时,遇到了一个怪问题:通过对比自己post的参数和服务器接收到的值,发现参数中的一个+号被替换成了空格. 造成这个错误的原因在于+号在 ...