说到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. phpstudy里升级mysql版本到5.7

    phpstudy里没有地方可以设置mysql数据库,很多人都疑惑在phpstudy里怎么升级mysql数据库版本,本文就教你如何在phpstudy中升级mysql的版本. PhpStudy集成环境中的 ...

  2. 第六天,字典Dictionary

    字典(Dictionary)在Python中是一种可变的容器模型,它是通过一组键(key)值(value)对组成,这种结构类型通常也被称为映射,或者叫关联数组,也有叫哈希表的.每个key-value之 ...

  3. Golang 编写 Tcp 服务器

    Golang 作为广泛用于服务端和云计算领域的编程语言,tcp socket 是其中至关重要的功能.无论是 WEB 服务器还是各类中间件都离不开 tcp socket 的支持. Echo 服务器 拆包 ...

  4. python之tkinter变量设置 2014-4-9

    python 可以自己定义变量以及变量类型mystring = StringVar(ticked_yes = BooleanVoption1 = IntVar()volume = DoubleVar( ...

  5. Robberies(01背包)

    The aspiring Roy the Robber has seen a lot of American movies, and knows that the bad guys usually g ...

  6. MacOS & iOS

    MacOS & iOS https://github.com/qinjx/30min_guides/blob/master/ios.md https://www.cnblogs.com/xgq ...

  7. _063_Android_Android内存泄露

    深入内存泄露 Android应用的内存泄露,其实就是java虚拟机的堆内存泄漏. 当然,当应用有ndk,jni时,没有及时free,本地堆也会出现内存泄漏. 本文只是针对JVM内存泄漏应用,进行阐述分 ...

  8. 【树状数组+dp】HDU 5542 The Battle of Chibi

    http://acm.hdu.edu.cn/showproblem.php?pid=5542 [题意] 给定长为n的序列,问有多少个长为m的严格上升子序列? [思路] dp[i][j]表示以a[i]结 ...

  9. gridview读取Excel文件中的数据,并将其导入数据库

    原文发布时间为:2008-10-16 -- 来源于本人的百度文章 [由搬家工具导入] //将需要导入的文件上传到服务器           string filePath = "" ...

  10. CritterAI与Recast Navigation寻路

    版权声明:本文为博主吴欣伟原创文章,未经博主允许不得转载. 前言 这篇文章写于去年,由于工作需要,故写出这个研究文档,发现网上有关此寻路库的中文资源十分稀少,故发布出来与诸位共享交流,如文中有不对之处 ...