think ajax 应用
首先得引入 jquery 文件,另外定义一个处理的 js.js 文件
如实现用 post 传输方法:
模板文件:
<script type="text/javascript">
var handleUrl = '{:U("process", '', '')}'; //如果是分组的,要给完整的处理方法路径,如 '{:U(分组名/模块/操作名, '', '')}'
// U 函数后面的两个空参数除去不必要的内容,让其映射到特定的操作名
</script>
<form action="" method="post" name="wishform">
<input type="text" name="username" id="user" /><br />
<textarea cols="30" rows="3" name="content" id="content"></textarea>
<br />
<input type="submit" value="submit" name="submit" id="sub" />
</form>
js.js 内容如下:
$(document).ready(function(){
$('#sub').click(function(){
var user = $('input[name=username]');
var content = $('textarea[name=content]');
if(user.val() == ''){
alert("USER: 不能为空!");
return false;
}
if(content.val() == ''){
alert("Content: 不能为空!");
return false;
}
// $.post(处理的函数名称,{格式选项属性},用于处理返回数据的函数, 数据格式)
$.post(handleUrl,{username:user.val(),content:content.val()}, function(data){
if(data.status){
alert("发布成功!");
}else{
alert("发布失败!");
}
}, 'json');
return false; // 防止冒泡发生。。。
});
});
handleUrl 操作(在控制器中添加):
public function handle(){
// 判断是不是 ajax 提交
if(!IS_AJAX) halt('非法提交');
// 获取提交过来的数据
$data = array(
'username'=>I('username'),
'content'=>I('content'),
'time'=>time()
);
//添加到数据库以及作反应返回
if(M('数据表名')->data($data)->add()){
$data['status'] = 1;
$this->ajaxReturn($data,'json');
}else{
$data['status'] = 0;
$this->ajaxReturn(array('status'=>0),'json');
}
}
如实现用 get 传输方法:
模板文件:
<script type="text/javascript">
var handleUrl = '{:U("process", '', '')}'; //如果是分组的,要给完整的处理方法路径,如 '{:U(分组名/模块/操作名, '', '')}'
// U 函数后面的两个空参数除去不必要的内容,让其映射到特定的操作名
</script>
</head>
<body>
<form action="" method="get" name="wishform">
<input type="text" name="username" id="user" /><br />
<textarea cols="30" rows="3" name="content" id="content"></textarea>
<br />
<input type="submit" value="submit" name="submit" id="sub" />
</form>
js.js 文件:
$(document).ready(function(){
$('#sub').click(function(){
var user = $('input[name=username]');
var content = $('textarea[name=content]');
if(user.val() == ''){
alert("USER: 不能为空!");
return false;
}
if(content.val() == ''){
alert("Content: 不能为空!");
return false;
}
htmlobj = $.ajax({url:handleUrl+'?username='+user.val()+'&content='+content.val(), async:false});
alert(htmlobj.responseText);
return false;
});
});
handleUrl 操作(在控制器中添加):
public function handle(){
// 判断是不是 ajax 提交
if(!IS_AJAX) halt('非法操作');
// 获取提交过来的数据
$username=I('username'),
$content=I('content'),
// 作为 responseText() 返回
echo '要显示的信息';
}
think ajax 应用的更多相关文章
- jQuery之ajax实现篇
jQuery的ajax方法非常好用,这么好的东西,你想拥有一个属于自己的ajax么?接下来,我们来自己做一个简单的ajax吧. 实现功能 由于jq中的ajax方法是用了内置的deferred模块,是P ...
- Ajax及跨域
概念 Ajax Ajax,Asynchronous JavaScript and XML,字面意思:异步的 JavaScript 和 XML,是指一种创建交互式网页应用的网页开发技术. 用于异步地去获 ...
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
一.事件回放 今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...
- ABP文档 - Javascript Api - AJAX
本节内容: AJAX操作相关问题 ABP的方式 AJAX 返回信息 处理错误 HTTP 状态码 WrapResult和DontWrapResult特性 Asp.net Mvc 控制器 Asp.net ...
- ajax异步请求
做前端开发的朋友对于ajax异步更新一定印象深刻,作为刚入坑的小白,今天就和大家一起聊聊关于ajax异步请求的那点事.既然是ajax就少不了jQuery的知识,推荐大家访问www.w3school.c ...
- 调用AJAX做登陆和注册
先建立一个页面来检测一下我们建立的用户名能不能用,看一下有没有已经存在的用户名吗 可以通过ajax提示一下 $("#uid").blur(function(){ //取用户名 va ...
- Ajax 概念 分析 举例
Ajax是结合了访问数据库,数据访问,Jquery 可以做页面局部刷新或者说是页面不刷新,我可以让页面不刷新,仅仅是数据的刷新,没有频繁的刷页面,是现在比较常用的一种方式做页面那么它是怎么实现页面无刷 ...
- ajax
常见的HTTP状态码状态码:200 请求成功.一般用于GET和POST方法 OK301 资源移动.所请求资源移动到新的URL,浏览器自动跳转到新的URL Moved Permanently304 未修 ...
- 学习笔记之MVC级联及Ajax操作
由于刚转型到MVC,MVC的架构模式很多不是很清楚,比如今天就想做个级联的操作,因为之前的ASP.NET的方式是通过:控件-->添加事件-->后台编写级联事件进行触发,但是这个MVC就不同 ...
- javascript表单的Ajax 提交插件的使用
Ajax 提交插件 form.js 表单的下载地址:官方网站:http://malsup.com/jquery/form/ form.js 插件有两个核心方法:ajaxForm()和ajaxSubmi ...
随机推荐
- 读FCL源码系列之List<T>---让你知其所以然---内含疑问求大神指点
序言 在.NET开发中,List<T>是我们经常用到的类型.前段时间看到其他部门小伙伴讨论“两个List(10W个元素)集合求并集,list1.Where(p=>list2.Cont ...
- spring websocket Converters must not be empty
此文件 WebSocketConfig.java public class WebSocketConfig implements WebSocketMessageBrokerConfigurer ...
- android111 java中调用c代码
MainActivity: package com.itheima.helloworld1; import android.os.Bundle; import android.app.Activity ...
- 基于x86架构的内核Demo的详细开发文档
http://hurlex.0xffffff.org/ 这里是hurlex这个基于x86架构的内核Demo的详细开发文档, 包含PDF文档和生成PDF的XeLaTex源码和文档每章节的阶段代码. 你可 ...
- Objective-C:runtime
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css); @import url(/ ...
- LUN 和 LVM 知识
LUN是对存储设备而言的,volume是对主机而言的. lun是指硬件层分出的逻辑盘,如raid卡可以将做好的400G的raid5再分成若干个逻辑盘,以便于使用,每一个逻辑盘对应一个lun号,OS层仍 ...
- LaTeX 标题中使用 \bm 命令与 hyperref 的冲突
问题 当使用 hyperref 宏包时,在标题中使用 \bm 为数学符号加粗会出现错误 \documentclass{article} \usepackage{bm} \usepackage{hype ...
- UNIX线程之间的关系
我们在一个线程中经常会创建另外的新线程,如果主线程退出,会不会影响它所创建的新线程呢?下面就来讨论一下. 1. 主线程等待新线程先结束退出,主线程后退出.正常执行. 示例代码: #include & ...
- Android开发之Menu组件
菜单Menu大致分为三种类型:选项菜单(OptionsMenu),上下文菜单(ContextMenu),子菜单(SubMenu). 1.选项菜单 在一个Activity界面中点击手机Menu键,在屏幕 ...
- Linq语法
希望能帮助一些linq新手. 开门见山 读这篇文章之前,我先说下,每一种搜索结果集,我都以三种方式变现出来,为啦更好的理解,希望不要嫌我啰嗦. 1.简单的linq语法 //1 var ss = fro ...