ThinkPHP学习笔记(十五)使用Ajax和Jquery来实现页面无刷新

ThinkPHP+AJAX表单提交 表单代码: 提交按钮不能为submit类型的,而且提交按钮要在表单外部。 (本人没注意到这个问题,导致ajax发送成功后还会再刷新一下页面,困扰了大半天。) 我这里面的性别那一段代码的选择方式,有js操作,请忽略掉。 <form action="" method="" id="prform"> <div class="loginForm"> &lt... 阅读详情

Action

<?php
class MessageAction extends Action{
  	public function index(){
    	$this->display();
    }  
  	public function jquery(){
    	$this->display();
    }  
    public function add(){
    	$m=M('Message');
    	if ($vo=$m->create()){
    		if ($m->add()) {
//    			$this->success('添加成功');
				//使用ajax
    			$this->ajaxReturn($vo,'添加成功',1);
    		}else{
//    			$this->error('添加失败');
				//使用ajax
    			$this->ajaxReturn(0,'添加失败',0);
    		}
    	}else{
    		$this->error($m->getError());
    	}
    }
    public function addjquery(){
    	//ajaxReturn()
    	//返回json格式的数据
    	//参数一:数据;参数二:提示信息;三:状态
    	//echo $this->ajaxReturn(3,'提示信息',2);
    	$m=M('Message');
    	if ($m->add($_GET)){
    		$this->ajaxReturn($_GET,'添加信息成功',1);
    	}else{
    		$this->ajaxReturn(0,'添加信息失败',0);
    	}
    }
}
?>

jquery.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="__PUBLIC__/js/jquery-1.4.4.js"></script>
<script type="text/javascript">
//标准ie可用,firefox不可用
$(function(){
	$('input:button').click(function(){
			var $title=$('input[name="title"]').val();
			var $message=$('input[name="message"]').val();
			$msg=$('#msg');
			$.getJSON('__URL__/addjquery',{title:$title,message:$message},function(json){
				if(json.status==1){
					$msg.slideDown(2000,function(){
						$msg.css('display','block');
					}).html('标题为'+json.data.title+'信息为'+json.data.message);
				}else{
					$msg.slideDown(2000,function(){
						$msg.css('display','block');
					}).html('信息添加失败,请检查');
				}
		});
	})
})
</script>
<title></title>
</head>
<body>
<!-- 1.jquery实例,将jquery放入Public/js/之下 -->
<div style="display:none;color:red;" id="msg"></div>
<form action="__URL__/addjquery" method="get">
	标题:<input type="text" name="title"/><br/>
	信息:<input type="text" name="message"/><br/>
	<input type="button" value="提交"/><!-- 先设置为button不跳转 -->
</form>

</body>
</html>

index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<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/ajax/ThinkAjax.js"></script>
<script type="text/javascript">
	function add(){
		ThinkAjax.sendForm('frm','__URL__/add',callback,'result');
	}
	function callback(data,status){
		alert(status);
		if(status==1){
			$('msg').innerHTML+='标题'+data.title+',信息'+data.message;
		}else{
			alert('参数错误');
		}
	}
</script>
<title></title>
</head>
<body>
<!-- 1.ajax实例,将js文件放入Public/js/之下 -->
<div style="color:red;" id="msg"></div>
<!-- 加入id,加入onclick事件 -->
<form action="__URL__/add" 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>


thinkphp 异步=登陆+注册+注销 jquery+ajax+thinkphp 用到3个页面  注册、登陆、个人中心 别忘了加载jQuery框架 1、注册界面  Register / index.html 2、注册控制器 RegisterController.class.php 3、注册模型页 RegisterModel.class.php 4、登陆界面  Login / index.html 5、登陆控制器 LoginController 6、个人 阅读详情

相关推荐

ThinkPHP+Jquery手册

这是一个ThinkPHP和Jquery的手册,直接下载解压就可以用了

Think PHP 5 利用jQuery实现无刷新分页与无刷新搜索

1.先将数据完整展示出来   (1)后台代码 public function GoodsShow(){       //每页显示数量       $size=5;       $model=new \app\test\model\Goods();       $data=$model->join('type','t_id=type_id')->select();       $data=collection($data)->toArray();       //计算一共有多少数据   

Dragon 389

Ajax jQuery thinkPHP 登录注册验证

Ajax jQuery thinkPHP 登录注册验证

TP5:前端使用JQ的 load() 方法做无刷新跳转,显示 "\r\n\r\nt\r" 的问题

报错: 原因: load() 无刷新跳转发送的是ajax请求 而TP5默认配置中,ajax 返回的是 json格式 数据 // 路径 config.php // 默认AJAX 数据返回格式,可选json xml ... 'default_ajax_return' => 'json', 解决: 不建议直接修改config内的配置项 只要在控制器返回页面前,手动...

yoonhi 652

从Excel到‘一张图’办案:手把手教你用AbutionGraph构建公安经侦知识图谱(含数据建模避坑指南)

本文详细介绍了如何利用AbutionGraph时序图数仓技术,将公安经侦领域的Excel、银行流水等碎片化数据转化为可交互的知识图谱。通过数据清洗、实体关系模型设计、时序数据处理等步骤,实现高效智能分析,提升办案效率。特别包含数据建模避坑指南和实战案例,助力公安金融案件侦破。

weixin_33702545的博客 341

(10)Proteus 8.9上的STM32仿真系列(HAL)---freertos

实验设计:通过cubemxide生成freertos工程,然后创建一个 pc13 led灯间隔200ms闪烁的任务。非常遗憾的是proteus8.9仿真失败,实物上没有问题,但还是把流程过一遍。 一、原理图 实物是淘宝上stm32f103 c8t6的核心板,proteus上没有这个芯片,这里图上大概表示一下,用的是核心板自带的pc13引脚的led灯。 二、cubemxide配置 1.RCC如之前工程一样配置 2、配置SYS timebase Source不要使用systick,自己选择一个定时器,我这

qq_35442550的博客 7342

ThinkPHP jquery ajax 整合

我之前一直做J2EE的,现在学习PHP,看到了一个PHP MVC的框架thinkPHP, 就下载下来看看,对比与之前的学习,现总结thinkPHP整合jquery ajax的用法。 1.首先需要明白thinkPHP是一...

cijiong5172的博客 283

Centos7.9上安装glibc2.28遇到/usr/bin/ld: cannot find -lnss_test2问题

Centos7.9安装glic2.28遇到-lnss_test2问题及解决方案。

freflying1119的博客 2898

ThinkPHP对Ajax完全支持

 ThinkPHP对Ajax完全支持ThinkPHP完全支持Ajax,并且还内置了一个SmartAjax和ThinkAjax类库,你可以不通过任何其他Ajax类库包就可以在ThinkPHP中使用Ajax支持。首先说一下ThinkPHP的JS类库以及如何在ThinkPHP中引入Js类库JS类库ThinkPHP框架自带了一个易于扩展的JS类库,并且通过标签库技术和JS方法轻松导入。JS类库的引

cation的专栏 9960

UE5Could not be compiled. Try rebuilding from source manually.

UE5Could not be compiled. Try rebuilding from source manually.

weixin_45417260的博客 2770

【Bluetooth|蓝牙开发】二、蓝牙开发入门

蓝牙,是一种利用低功率无线电,支持设备短距离通信的无线电技术,能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换,蓝牙工作在全球通用的2.4GHz ISM(即工业、科学、医学)频段,使用IEEE802.11协议。

Donge's Blog 1万+

【ThinkPHP5】【tp5】通过Ajax实现分页的局部刷新

效果 核心代码 服务端,Index控制器中: public function showflower(/*Request $request*/) { /* * 参考文档中的“链式操作” */ $flowers = Db::table('flower') ->order(['S.........

passerbyYSQ 4575

innovus:如何在init design之后新增参考库(lib/lef)

如题,在PR过程中经常会遇到这种问题,时序无法收敛,需要新增一套lvt或者hpc的库,怎么办?

m0_61544122的博客 5005

ThinkPHP+JQuery实现ajax无刷新登录验证(详解+相关问题)

ThinkPHP+JQuery实现ajax无刷新登录验证 摘要: 使用原生javascript进行ajax实现无刷新更改页面内容的复杂性尽人皆知,而jquery对ajax传递进行了封装和优化,因此通过jquery进行ajax的参数传递无疑是很好的选择。本文主要内容为thinkphp结合jquery实现登录验证的无刷新,并可以应用到其他方面。 postbird http://www.ptbird.cn There I am , in the world more exciting!

POSTBIRD 6637

通信算法之264: DJI O2 协议物理层逆向工程解析

对于 DroneID,标志之间的间隙由循环前缀 (CP) 填充:每个标志末尾的副本附加在相应标志的开头。有了关于确切标志开始的信息,可以使用 FFT 将标志转移到频域 - 来自时域的 1024 个样本导致频域中的 1024 个子载波。使用比特流的解扰和涡轮解码,并将生成的数据映射到如上的DroneID 结构,通过逆向工程在无人机的固件中找到了它。注意到一些无人机(Mavic 2 和更早的 OcuSync 无人机)不发送第一个标志(标志 1),这导致更短的帧持续时间为 576 µs。//产品型号数字代号。

leegang12的专栏 3942

Python + Playwright:集成 Applitools 进行视觉回归测试(快速入门)

Applitools是一款基于人工智能的视觉验证测试工具,专门用于自动化和验证应用程序的用户界面(UI);Applitools使用视觉回归测试来检测应用程序界面的变化,确保 UI 在不同版本之间的一致性;Applitools的核心功能是通过视觉比较,检测 UI 元素的差异,而无需手动编写复杂的界面检查代码;通过集成Applitools,测试人员可以轻松捕捉和验证界面中的视觉差异,无论是在Web移动端或桌面应用的测试环境;

blues_C的博客 2920

thinkphp ajax无刷新分页类及实例

Html代码写: {$vv.title} {$vv.content} {$page} fetch代码写: {$vv.title} {$vv.content} {$page} 控制器写:$articleData = M('article'); // 实例化User对象 $count      = $arti

qq_37995146的博客 3421

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

jquery ajax 页面无刷新修改DOM----Thinkphp

对应html 对应jQuery ajax 对应PHP  thinkphp

weishuxiao1的专栏 1565

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

thinkphp ajax html页面,thinkphp下页面内部分内容的ajax无刷新分页

部分内容为转载,原文章为:https://segmentfault.com/a/11...thinkphp框架自带的分页类是每次翻页都要刷新一下整个页面,这种翻页的用户体验显然是不太理想的,我们希望每次翻页只刷新我们想要的数据集部分的数据,这样我们很容易想到ajax异步通信,用ajax与数据库(本人在开发过程中使用的是mysql数据库)异步交互,将从数据库查询的数据返回,用jquery替换原有的数...

weixin_32709413的博客 159

jquery:使用PHP和AJAX不刷新页面的新事件通知

每次将新事件添加到我的数据库时,我都会向我的用户显示通知。我的首页上有一个小图标,还有一个红色方块来显示添加的新事件的数量。现在我只想知道在不刷新页面的情况下显示新事件的最佳方法是什么。但是,每次将新事件添加到我的数据库时,我如何调用该函数而不刷新或加载页面?我认为使用设置的时间间隔或延迟会因为频繁的服务器查询而减慢我的页面,所以我正在寻找其他选项。我的PHP查询基本上是事件总数>0的时候,显示一个<span>和里面的总数,但是这只在页面刷新或者加载的时候显示。

FuZhuangWang的博客 201

ThinKPHP框架+ajax实现图片无刷新上传

ThinKPHP框架+ajax实现图片无刷新上传本程序是结合视频教程和百度资料整理出的,以便以后学习和使用: 有uploadify扩展包 下载uploadify类包 将之解压放在./Public/js目录下。 前端文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>无刷新上传</tit

小灰灰的博客 4872

php网站制作(4)-thinkphp jQuery ajax实现后台数据交互

ajax可以实现无页面刷新的情况下与后台数据进行交互,并动态修改页面(js),j

weishuxiao1的专栏 1906

thinkphp5学习路程 七 ajax使用和实现分页无刷新

AJAX的简单了解: AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)。 AJAX 不是新的编程语言,而是一种使用现有标准的新方法。 AJAX 最大的优点是在不重新加载整个页面的情况下,可以与服务器交换数据并更新部分网页内容。 AJAX 不需要任何浏览器插件,但需要用户允许JavaScript在浏览器上执行。 实现分页...

meihuasheng的博客 331

java ajax刷新,javaweb ajax刷新

javaweb ajax刷新[2021-02-09 07:42:05]简介:php实现无刷新点赞的方法:首先通过ajax index.php点击按钮;然后实现js反应;接着通过ajax异步提交给“sever.php”;最后通过js返回给页面即可实现无刷新点赞。推荐:《PHP视频教程php去除nbsp的方法:首先创建一个PHP代码示例文件;然后通过“preg_replace("/(\s|\&am...

weixin_39740737的博客 312

thinkphp下ajax实现无刷新删除

1.foreach遍历出控制器中分类表中的数据,此处需要注意的是链接跳转href=”javascript:void(0)”,然后再将js中的函数绑定到点击事件 2.ajax不刷新删除:thinkphp下_URL_表示当前文件url地址,此处接上函数传递的参数catid,使用get方式传递给当前模块下的dele方法,dele方法执行删除数据库的动作,如果删除成功js中remove方法移除该行不显示页

living_ren的博客 1700
上一篇: ThinkPHP学习笔记(十四)上传文件
下一篇: ThinkPHP学习笔记(十六)使用视图(数据库视图)和缓存
阳小良
博客等级 码龄17年 54粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值