说到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的实现过程的更多相关文章

  1. 辛星浅析跨域传输的CORS解决方式

    首先我们有一个概念.那就是"同源准则",也就是same-origin  policy,它要求一个站点(协议+主机+port号)来确定的脚本.XMLHttpRequest和Webso ...

  2. 辛星浅析Linux中的postfix

    Postfix是眼下Linux下主流的邮件server,也就是MTA,主要用来实现SMTP协议,它能够兼容sendmail.而postfix也是为了改进sendmail而制作产生的. 通常来说.pos ...

  3. 辛星浅析raid

    我们来分析一下影响计算机性能的主要组件,主要就是CPU.主板的总线IO.内存IO.硬盘IO.网卡IO等等,并且如今CPU的性能已经非常好了,可是计算机的总体的IO性能却较低,严重影响了计算机的性能,如 ...

  4. 辛星浅析html5中的role属性

    我们使用role属性告诉辅助设备.这个元素所扮演的角色.比方点击的按钮,我们通常就使用role="button",会让这个元素可点击. 可是它很多其它的是用来增强语义性,当现有的h ...

  5. 辛星浅析yaf框架中的类的自己主动载入问题

    因为公司非常多项目都是基于yaf的,而非常多刚接触yaf的朋友问的第一个问题就是:yaf的自己主动载入是依照什么规则来的. 鉴于此.于是我特别开了一篇博文来记录一下. 首先在yaf中.models文件 ...

  6. 2014年辛星jquery解读第三节 Ajax

    ***************Ajax********************* 1.Ajax是Asynchronous Javascript And  XML的简写,它指的是异步Javascript ...

  7. 2014年辛星完全解读Javascript第一节

    ***************概述*************** 1.Javascript是一种原型化继承的基于对象的动态类型的脚本语言,它区分大小写,主要运行在客户端,用户即使响应用户的操作并进行数 ...

  8. 2014在辛星Javascript口译科

    ***************概要*************** 1.Javascript是一种原型化继承的基于对象的动态类型的脚本语言,它区分大写和小写.主要执行在client,用户即使响应用户的操 ...

  9. 浅析JSONP-解决Ajax跨域访问问题

    浅析JSONP-解决Ajax跨域访问问题 很久没有写随笔了,总是感觉没时间,其实时间就是...废话少说,前几天,工作上有一新需求,需要前端web页面异步调用后台的Webservice方法返回信息.实现 ...

随机推荐

  1. OAuth2.0授权流程

    微信授权 第3步的微信授权中的scope字段: snsapi_base 静默授权,不弹出用户同意框,可直接获取成员的基础信息:    snsapi_userinfo:静默授权,弹出用户同意框,待用户同 ...

  2. Tiny4412 U-BOOT移植(转)

    http://blog.csdn.net/eshing/article/details/37520291(转) 一.移植前说明: 1.  特别声明:此文档是我的学习文档,里面肯定有错误地方,仅供参考! ...

  3. reversing.kr replace 之write up

    好似reversing除了前几个容易些,后面的都很难的.看wp都很困难.首先wp提示crtl+n查看程序所有函数,并且找到了测试函数: 补充: GetDlgItemInt函数通过发送控件WM_GETT ...

  4. Haybale Stacking(差分数组 + 求中位数的一些方法 + nth_element)

    题意: 给定N个初始值为0的数, 然后给定K个区间修改(区间[l,r] 每个元素加一), 求修改后序列的中位数. 分析: K个离线的区间修改可以使用差分数组(http://www.cnblogs.co ...

  5. sed之h;H和:a;N;ba使用精解(对段落进行操作)

    1) 文本: Handle 0x0058, DMI type 20, 19 bytes Memory Device Mapped Address         Starting Address: 0 ...

  6. STM32F407 STLINK 在线调试 个人笔记

    配置的部分请看本博客STM32分类下的环境配置篇目 开始调试 一些按键 查看寄存器 查看变量值 选中变量,右键,add to watch

  7. LoadRunner之并发用户数与迭代关系---并发数与迭代的区别

    Q1: 例如在LR里,我要测100个用户同时并发登陆所用时间,那我是不是在录制好脚本后,需要参数化“用户名”,“密码”以及在那个记事本里构造100个真实的用户名和密码? 然后运行Controller, ...

  8. xtu summer individual 1 E - Palindromic Numbers

    E - Palindromic Numbers Time Limit:2000MS     Memory Limit:32768KB     64bit IO Format:%lld & %l ...

  9. HDU 1278

    题目大意: 从(1,1)到(n,n),每经过一个点都要花费一定的时间,问花最短时间的路径有多少条 dfs+dp 先用bfs把所有到n花费的时间逆向dp计算一遍 再用dfs不断找到前一个对应的较短路径的 ...

  10. C 题 KMP中next[]问题

    题目大意: 找到能够进行字符串匹配的前缀 这题只要一直求next,直到next为0停止,记得答案是总长减去next的长度 #include <iostream> #include < ...