ajax简单后台交互
ajax简单后台交互
1,扯淡
单身的生活,大部分时间享受自由,小部分时间忍受寂寞。
生活有时候,其实蛮苦涩,让人难以下咽。那些用岁月积累起来的苦闷,无处宣泄,在自己的脑海里蔓延成一片片荆棘,让你每每想坐下休息的时候刺痛你,让你在睡梦里惊醒,在快乐里落寞,在喜悦中突然感到悲伤。
可是,我们顺利熬到了今天,应该说:我们是那些还没有和生活妥协的人。
2,主题
写页面总会遇到ajax的,用得多了自然熟练了,或会存着源码,要用了copy下就好了。
这里是简单实现一个利用jquery 的ajax方法实现的查询后台信息的功能。
1,页面上的控件:

<tr>
<td align="right"><div align="right"><strong>选择微信:</strong></div></td>
<td align="left">
<input type="text" id="wxName" /> <a href="#" onclick="addWX()" class="button" style="padding: 2px 8px !important;">添加</a>
</td> </tr>
<tr>
<td align="left">
</td>
<td align="left">
<div id="wxDiv">
</div>
</td>
</tr>

页面效果:(看起都不nb的样子)

2,js addWX()方法就是直接ajax调用后台的代码了:

function addWX(){
var wxName = $("#wxName").val();
if(wxName==""){
alert("请输入微信号或名称!");
return;
}
$.ajax({
type:"POST",
contentType:"application/json;charset=UTF-8",
url:"../wx/getWXById.json",
data:{wxName:wxName},
dataType:"json",
success:function(result){
if(result.RC == "0"){
alert("所填微信不存在!");
return;
}else{
var wxId = result.wxId;
var wxName = result.wxName;
storeWX(wxId, wxName);
}
}
});
}

解释:使用了POST的方式提交了信息,contentType:"application/json;charset=UTF-8",返回的数据格式是json格式的。
注意:这里使用了success触发回调,如果使用Complete触发回调,会有result无法很简单的如result.RC这样得到返回信息。result.RC会没有定义的问题。
在回调中的js函数如下:

function storeWX(wxId, wxName){
var storeWXHtml = '<a id="%wxId%" href="#" onclick="removeWX(this.id)" style="padding: 3px 3px !important;">%wxName%</a>';
storeWXHtml = storeWXHtml.replace("%wxId%", wxId).replace("%wxName%", wxName);
$("#wxDiv").append(storeWXHtml);
getwxs();
}
function removeWX(wxId){
$("#"+wxId).remove();
getwxs();
}
function getwxs(){
var wxs="";
$("#wxDiv a").each(function(){
wxs = wxs + this.id + "|";
})
wxs = wxs.substring(0,wxs.length - 1);
$("#wxs").val(wxs);
}

可以看到回调中吧查询到的内容展现在页面上,然后将查询的结果存在页面中,继续添加的时候就需要继续保存添加的微信,所以使用“|”分割开的一个字符串来存储多个数据如:123|124|125,存在页面的hidden的input中:
<input id="wxs" type="hidden" value="" name="">
后台查询如果有数据,页面的效果就是:

从storeWX js方法 里看 产生的html,是一个a标签,带了个点击事件,点击 “小道消息”,就可以remove掉他了,remove后需要重新更新存储的wxs。
3,后台
后台的工作很简单,取得查询的条件,去数据库查询一遍,返回结果。

String params = RequestUtil.getContent(request);
params = URLDecoder.decode(params,"UTF-8");//wxName=xxxx
String wxName = params.split("=")[1];
JSONObject result = new JSONObject();
WxDO wx = wxService.getWxByNameOrUserName(wxName);
if(wx == null){ result.put("RC", 0);//没有微信
}else{
result.put("RC", 1);
result.put("wxName", wx.getName());
result.put("wxId", wx.getId());
}
return result;

使用了getContent方法是因为使用了POST方式,所以后台需要从http请求中的body里拿内容,如下:

public static String getContent(HttpServletRequest request) {
StringBuffer buffer = new StringBuffer();
InputStream is = null;
try {
is = request.getInputStream();
String content = "";
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
while ((content = reader.readLine()) != null) {
buffer.append(content);
}
} catch (IOException e) {
logger.error("request.getInputStream failed :", e);
} finally {
if (is != null) {
try {
is.close();
} catch (Exception e) {
// do noting
}
}
}
return buffer.toString();
}

注意:拿出来的内容中文是进行了UTF-8转码的,所以需要 URLDecoder.decode(params,"UTF-8") 进行反转回来。
也可以通过使用GET方式,避免中文乱码问题:
1,把js中的POST改成GET
2,后台获取方式修改:
String wxName=request.getParameter("wxName");
jquery也提供了简化版的ajax方法:$post
例子:
$.post("releaseAdvert.html", {ids:ids},
function(data){
alert("发布成功!");
});
让我们继续前行
----------------------------------------------------------------------
努力不一定成功,但不努力肯定不会成功。
共勉。
ajax简单后台交互的更多相关文章
- ajax简单后台交互-我们到底能走多远系列(28)
我们到底能走多远系列(28) 1,扯淡 单身的生活,大部分时间享受自由,小部分时间忍受寂寞. 生活有时候,其实蛮苦涩,让人难以下咽.那些用岁月积累起来的苦闷,无处宣泄,在自己的脑海里蔓延成一片片荆棘, ...
- 通过PHP前端后台交互/通过ajax前端后台交互/php基础传输数据应用/简单的留言版/简单的注册账户/简单的登录页/
前 言 PHP 通过上一篇博客,注册账号与登录页面--前后台数据交互 跳转转到index主页,接下来进入主页留言板功能,通过ajax向后台传输数据,同时发表留言. 具体的内容分析如下 ...
- 通过ajax前端后台交互/登录页和注册页前端后台交互详解/前端后台交互基础应用/几个后台函数的基础应用/php文件函数基础应用/php字符传函数基础应用/php数组函数基础应用
前 言 PHP 学习了好久的PHP,今天做一个可以后台交互的登录页和注册页,没做什么判断,简单的了解一下. 具体的内容分析如下: ① PHP中的数据传输-->>由注册页传输 ...
- Spring Mvc模式下Jquery Ajax 与后台交互操作
1.基本代码 1)后台控制器基本代码 @Controller @RequestMapping("/user") public class UserController { @Aut ...
- $Django ajax简介 ajax简单数据交互,上传文件(form-data格式数据),Json数据格式交互
一.ajax 1 什么是ajax:异步的JavaScript和xml,跟后台交互,都用json 2 ajax干啥用的?前后端做数据交互: 3 之前学的跟后台做交互的方式: -第一种:在浏览器 ...
- ajax与后台交互传输数据的工具类
public class Result<T> implements Serializable { private static final long serialVersionUID = ...
- AJAX与后台交互传参的两种方式
工作中的简单总结备忘,防遗失. 第一种:直接传入json数据(后台一个一个入参对接) 1- js请求: var data = {}; data = {"infoId":infoId ...
- ajax请求后台交互json示例
ajax请求,首先需要服务器(首先你需要node) npm i -g http-server 其次,进入当前目录(默认服务器端口8080) http-server 点击进入:localhost:808 ...
- ajax与后台交互案例
BBS项目 //BBS项目,注册页面ajax请求 // 1.实现照片预览 $("#up_myhead").change(function () { // 获取input选择的文件 ...
随机推荐
- centos7的安装
初装centos7还是在九月份,那时候关于win7 下centos7硬盘安装的资料很少,现在就好多, 在这里备份下东西吧 首先是安装的时候,关于找从那个地方找image的问题. hda ,sda分别表 ...
- POJ 2262 Goldbach's Conjecture(素数相关)
POJ 2262 Goldbach's Conjecture(素数相关) http://poj.org/problem?id=2262 题意: 给你一个[6,1000000]范围内的偶数,要你将它表示 ...
- hdu 4932 Miaomiao's Geometry(暴力)
题目链接:hdu 4932 Miaomiao's Geometry 题目大意:在x坐标上又若干个点,如今要用若干条相等长度的线段覆盖这些点,若一个点被一条线段覆盖,则必须在这条线的左端点或者是右端点, ...
- Asp.Net MVC5入门学习系列⑥
原文:Asp.Net MVC5入门学习系列⑥ 接着上次的篇幅,我们这篇手动来写一个查询的流程代码! 搜索/查询 流程功能的实现 那现在要做搜索(查询)功能我们第一步应该做什么呢!第一次是不是我们应该去 ...
- 逗比学树莓派之GPIO
wiringPi适合那些具有C语言基础,在接触树莓派之前已经接触过单片机或者嵌入式开发的人群.wiringPi的API函数和arduino很相似,这也使得它广受欢迎.作者给出了大量的说明 ...
- PHP jpgraph的一点小提示(附安装方法)
PHP中的GD库本身是一套很强大的绘图库了,绘制的图像基本可以满足日常要求,但强大规强大,还是不够方便哈,因为强大方便的基于PHP的GD库的jpgraph也就诞生啦! PHP默认是不启用GD库的,因为 ...
- SQL点滴25—T-SQL面试语句,练练手
原文:SQL点滴25-T-SQL面试语句,练练手 1. 用一条SQL语句查询出每门课都大于80分的学生姓名 name kecheng fenshu 张三 语文 81张三 ...
- .NET的DTO映射工具AutoMapper
.NET的DTO映射工具AutoMapper 原文:https://github.com/AutoMapper/AutoMapper/wiki/Getting-started 参考:http://ww ...
- c#登录时保存账号密码到cookie
登陆界面有用户名.密码输入框,一个’记住账号密码‘的复选框. 1.登录时,勾选‘记住账号密码‘复选框,则会把用户名密码保存在客户端cookie里,保存时间为最大值(直到用户清除浏览器缓存或者取消勾选’ ...
- 【Android中Broadcast Receiver组件具体解释
】
BroadcastReceiver(广播接收器)是Android中的四大组件之中的一个. 以下是Android Doc中关于BroadcastReceiver的概述: ①广播接收器是一个专注于接收广播 ...