thinkphp中ajax使用实例(thinkphp内置支持ajax)
一、总结
1、thinkphp应该是内置支持ajax的,所以请求类型里面才会有是否是ajax
// 是否为 Ajax 请求 if (Request::instance()->isAjax()) echo "当前为 Ajax 请求";
// 是否为 Pjax 请求 if (Request::instance()->isPjax()) echo "当前为 Pjax 请求";
二、thinkphp中ajax使用实例
一、jquery实现方法:
MessageAction.class.php页面代码如下:
<?php
class MessageAction extends Action{ function index(){
$this->display();
} function add(){ //1、控制器add方法
//ajaxReturn(数据,'提示信息',状态)
$m=M('message');
if($m->add($_GET)){
$this->ajaxReturn($_GET,'添加信息成功',1); //2、以ajax方式返回
}else{
$this->ajaxReturn(0,'添加信息失败',0);
}
} }
?> 模板index.html代码如下:
<html>
<head>
<script type="text/javascript" src="__PUBLIC__/js/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(function(){
$('input:button').click(function(){ //1、表单ajax提交实例
var $title=$('input[name="title"]').val();
var $message=$('input[name="message"]').val();
$mess=$('#mess');
$.getJSON('__URL__/add',{title:$title,message:$message},function(json){ //2.提交到控制器中的add方法 3、$.getJSON感觉是封装的ajax的open方法
//alert(json);return false;
if(json.status==1){
$mess.slideDown(3000,function(){
$mess.css('display','block');
}).html('标题为'+json.data.title+'信息为'+json.data.message);
}else{
$mess.slideDown(3000,function(){
$mess.css('display','block');
}).html('信息添加失败,请检查');
}
});
})
})
</script>
</head>
<body>
<div style="display:none; color:red;" id="mess"></div>
<form action="" method="get">
标题:<input type="text" name="title" /><br />
信息:<input type="text" name="message" /><br />
<input type="button" value="提交" />
</form>
</body>
</html> 二、ThinkPHP实现方法:
MessageAction.class.php页面代码如下:
<?php
class MessageAction extends Action{ function index(){
$this->display();
} function addtwo(){
$m=M('message');
if($vo=$m->create()){
if($m->add()){
$this->ajaxReturn($vo,'添加成功',1);
}else{
$this->ajaxReturn(0,'添加失败',0);
}
}else{
$this->error($m->getError());
}
}
}
?> 模板index.html代码如下:
<html>
<head>
<script type="text/javascript" src="__PUBLIC__/Js/Base.js"></script>
<script type="text/javascript" src="__PUBLIC__/Js/prototype.js"></script>
<script type="text/javascript" src="__PUBLIC__/Js/mootools.js"></script>
<script type="text/javascript" src="__PUBLIC__/Js/ThinkAjax.js"></script>
<script type="text/javascript">
function add(){
//ThinkAjax.sendForm(表单ID,URL,回调函数,信息显示的地方);
ThinkAjax.sendForm('frm','__URL__/addtwo',wc);
}
function wc(data,status){
if(status!=1){
alert('发送失败');
}else{
$('list').innerHTML+='标题'+data.title+',信息'+data.message;
}
}
</script> </head>
<body>
<div id="list"></div>
<form action="" method="POST" id="frm">
标题:<input type="text" name="title" /><br />
信息:<input type="text" name="message" /><br />
<input type="button" value="提交" onClick="add()" />
</form>
</body>
</html> 感兴趣的朋友可以测试运行一下本文所示实例,可以加深对Ajax应用的理解。
thinkphp中ajax使用实例(thinkphp内置支持ajax)的更多相关文章
-
目录结构-内置(AJAX)帮助文档
Discuz common.js 内置(AJAX)函数帮助文档 作者:cr180 / 整理日期:1970-01-01 / 个人站点:www.cr180.com / Discuz超级管家 showMen ...
-
freemarker 中可以直接使用的内置对象
freemarker 中可以直接使用的内置对象 需要配置一下:springboot中配置 ## Freemarker \u914D\u7F6E ## \u6587\u4EF6\u914D\u7F6E\ ...
-
Python中字符串String的基本内置函数与过滤字符模块函数的基本用法
Python中字符串String的基本内置函数与用法 首先我们要明白在python中当字符编码为:UTF-8时,中文在字符串中的占位为3个字节,其余字符为一个字节 下面就直接介绍几种python中字符 ...
-
在Eclipse+ADT中开发Android系统的内置应用
转自: http://www.iteye.com/topic/1050439 在Eclipse+ADT中开发Android系统的内置应用 Android系统内置有:Browser(浏览器).Mms( ...
-
迭代器模式的一种应用场景以及C#对于迭代器的内置支持
迭代器模式 先放上gof中对于迭代器模式的介绍镇楼 意图 提供一种方法顺序访问一个聚合对象中各个元素, 而又不需暴露该对象的内部表示. 别名 游标(Cursor). 动机 一个聚合对象, 如列表(li ...
-
Spring MVC内置支持的4种内容协商方式【享学Spring MVC】
每篇一句 十个光头九个富,最后一个会砍树 前言 不知你在使用Spring Boot时是否对这样一个现象"诧异"过:同一个接口(同一个URL)在接口报错情况下,若你用rest访问,它 ...
-
php 内置支持的标签和属性
内置支持的标签和属性列表如下: 标签名 作用 包含属性 include 包含外部模板文件(闭合) file import 导入资源文件(闭合 包括js css load别名) file,href,ty ...
-
thinkPHP中_initialize方法实例分析
子类的_initialize方法自动调用父类的_initialize方法. 而php的构造函数construct,如果要调用父类的方法,必须在子类构造函数显示调用parent::__construct ...
-
自学PHP的第22天---ThinkPHP中的路由、ThinkPHP目录结构
这一切的一切都得从“Hello world”说起!!! 有很多东西在thinkPHP的官方开发文档上其实都有讲到,我在这里只是想记录自己每天坚持学习PHP的情况,今天接触ThinkPHP的路由,路由这 ...
随机推荐
-
使用canal分析binlog(二) canal源码分析
在能够跑通example后有几个疑问 1. canal的server端对于已经读取的binlog,client已经ack的position,是否持久化,保存在哪里 2. 即使不启动zookeeper, ...
-
会话控制:session与cookie
我们在浏览网站时,访问的每一个web页面都需要使用"http协议"实现.而HTTP协议是无状态协议,就是说HTTP协议没有一个内建机制来维护两个事务之间的状态.当一个用户请求一个页 ...
-
大数A-B
还没写过大数减法,今天比赛还WA了两次... #include<iostream> #include<string> using namespace std; void sub ...
-
public,private,protected的区别
一,public,private,protected的区别public:权限是最大的,可以内部调用,实例调用等.protected: 受保护类型,用于本类和继承类调用.private: 私有类型,只有 ...
-
JS逗号、冒号与括号
JavaScript面试时候的坑洼沟洄——逗号.冒号与括号 看完了javaScript数据类型和表达式与运算符相关知识后以为可以对JavaScript笔试题牛刀小试一把了,没想到有一次次的死在逗号 ...
-
mysql 中 character set 与 collation 的理解
character set 和 collation 的是什么? character set, 即字符集. 我们常看到的 utf-8, GB2312, GB18030 都是相互独立的 character ...
-
[原创]K8mysqlCmd数据库免驱连接工具
无需机器安装MYSQL驱动,可用于内网渗透(如远控cmd下连接目标内网不可上网机器数据库) 当然目标机可代理出来的话,没必要使用该工具了 因为很多功能SQL语句需要自己打,很多人可能不懂 如果更新2. ...
-
[No000012F]WPF(7/7) - 样式,触发器和动画
WPF Tutorial : Beginning [^] WPF Tutorial : Layout-Panels-Containers & Layout Transformation [^] ...
-
Celery + RabbitMq 示意图
一直搞不清楚消息队列和任务队列是如何结合的,直到碰到了 :http://www.cnblogs.com/jijizhazha/p/8086119.html 中的图,恍然大悟,凭借自己的理解,画了这幅组 ...
-
通过flask中的Response返回json数据
使用flask的过程中,发现有时需要生成一个Response并返回.网上查了查,看了看源码,找到了两种办法: from flask import Response, json Response(jso ...