vue实战(一):利用vue与ajax实现增删改查
vue实战(一):利用vue与ajax实现增删改查:
<%@ page pageEncoding="UTF-8" language="java" %>
<%@ include file="../commons/taglib.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="zh-CN">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta http-equiv="Expires" content="0">
<meta http-equiv="Cache-Control" content="no-cache"> <link rel="stylesheet" href="${ctxStatic}/css/bootstrap.min.css">
<script type="text/javascript" src="${ctxStatic}/js/jquery.min.js"></script>
<script type="text/javascript" src="${ctxStatic}/js/bootstrap.min.js"></script>
<script type="text/javascript" src="${ctxStatic}/js/common.js"></script>
<script type="text/javascript" src="${ctx}/static/js/vue.js"></script>
<script type="text/javascript">
var getUrl='${ctx}/distributor/getRate';
var saveUrl= '${ctx}/distributor/saveRate';
var rate = [];
var vm ;
var rates ='';
$.ajax({
url : getUrl,
async : false,
dataType: 'json',
success: function(data2){
rate = data2;
}
});
console.log(rate);
$(function(){
vm = new Vue({
el: "#app",
data: {
rates : rate,
newRate:{
startMoney:'',
endMoney:'',
rate:''
},
myShow:false
} ,
methods: {
saveRate: function(){
rates = JSON.stringify(this.rates);
console.log(rates);
$.ajax({
url: saveUrl,
dataType: 'json',
type: 'post',
data:{
rate:rates
},
success:function(data){
console.log(data)
},
error:function(err){
console.log(err)
}
})
},
delRate: function(e){
var that = e.currentTarget;
console.log(e.currentTarget);
delId = that.id
this.rates.splice(delId,1);
},
addRate: function() {
this.myShow =true;
console.log(this.rates);
},
sureRate :function() {
this.myShow = false; //隐藏输入框
rates = this.rates;
newRate = this.newRate;
var newStartMoney = parseInt(newRate.startMoney); //输入的开始金额
var newEndMoney = parseInt(newRate.endMoney);// 输入的结束金额
var new_rate = parseInt(newRate.rate); // 输入的返佣比例
if(rates.length == 0){ //当一行数据都没有的时候
if(newStartMoney > newEndMoney){
alert("输入的startmoney必须小于endMoney");
return false;
}else if(new_rate <= 0 || new_rate >1){
alert("返佣比例必须在0到1之间")
return false;
}else{
var newRate2 ={
startMoney: newRate.startMoney,
endMoney: newRate.endMoney,
rate: newRate.rate
}
rates.push(newRate2);
}
}else{ //有数据的时候
var beforeEndMoney = parseInt(rates[rates.length-1].endMoney); //前一项的结束金额
if(newStartMoney < beforeEndMoney){
alert("开始金额必须大于等于前一项的结束金额");
return false;
}else if(newStartMoney > newEndMoney){
alert("开始金额必须小于结束金额");
return false;
}else if(new_rate <= 0 || new_rate >1){
alert("返佣比例必须在0到1之间")
return false;
}
else{
var newRate2 ={ //定义一个新的对象赋值,如果直接写 newRate2 = newRate的话,newRate2 其实只是一个相当于指针的东西,只是指向了newRate的值,如果newRate的值改变了,newRate2也会改变。
startMoney: newRate.startMoney,
endMoney: newRate.endMoney,
rate: newRate.rate
}
rates.push(newRate2);
} }
// 将输入框对象的值都设置为空,为下一次输入作准备
this.newRate.startMoney = '';
this.newRate.endMoney = '';
this.newRate.rate = '';
}
} });
});
</script> <style> </style>
<body id="app">
<table>
<thead>
<tr>
<th colspan="3">订单金额区间(元)</th><th colspan="1">返佣比例(%)</th><th>操作</th>
</tr>
</thead>
<tbody>
<tr v-for="rate in rates">
<td>{{rate.startMoney}}</td>
<td>~</td>
<td>{{rate.endMoney}}</td>
<td>{{rate.rate}}</td>
<td><button @click = "delRate" id="{{$index}}">删除</button></td> <!-- 这里的index索引方法要注意 -->
</tr>
<tr v-show="myShow">
<td><input type="text" v-model="newRate.startMoney"></td>
<td>~</td>
<td><input type="text" v-model="newRate.endMoney"></td>
<td><input type="text" v-model="newRate.rate"></td>
<td><button @click = "sureRate">确定</button></td>
</tr>
</tbody>
</table>
<button @click="addRate">新增</button> <button @click="saveRate">保存</button>
</body>
</html>
本次项目的注意点:
1:ajax 的使用不熟练
2:删除方法,可以使用索引,为每一行设置一个id属性值,然后删除总数据id属性值的那个项。
3:在新增项中,要注意js中,例如a=b中 "=" 其实相当于一个指针,当b的值变化时,a也会改变(a其实并没有值),这个时候我们要将a的具体属性值都要设置才行。
vue实战(一):利用vue与ajax实现增删改查的更多相关文章
- Android(java)学习笔记193:利用谷歌API对数据库增删改查(推荐使用)
接下来我们通过项目案例来介绍:这个利用谷歌API对数据库增删改查 1.首先项目图: 2.这里的布局文件activity_main.xml: <LinearLayout xmlns:android ...
- ajax参考增删改查
AJAX做增删改查详细! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "htt ...
- C#利用WinForm调用WebServices实现增删改查
实习导师要求做一个项目,用Winform调用WebServices实现增删改查的功能.写下这篇博客,当做是这个项目的总结.如果您有什么建议,可以给我留言.欢迎指正. 1.首先,我接到这个项目的时候,根 ...
- Android(java)学习笔记136:利用谷歌API对数据库增删改查(推荐使用)
接下来我们通过项目案例来介绍:这个利用谷歌API对数据库增删改查 1. 首先项目图: 2. 这里的布局文件activity_main.xml: <LinearLayout xmlns:andro ...
- Vue+Mock.js模拟登录和表格的增删改查
有三类人不适合此篇文章: "喜欢站在道德制高点的圣母婊" -- 适合去教堂 "无理取闹的键盘侠" -- 国际新闻版块欢迎你去 "有一定基础但又喜欢逼逼 ...
- MVC中的Ajax与增删改查
自入手新项目以来,一直处于加班状态,博客也有两周没更,刚刚完成项目的两个模组,稍有喘息之机,写写关于项目中 的增删改查,这算是一个老生常谈的问题了,就连基本的教材书上都有.刚看书的时候,以为 没什么可 ...
- MVC中的Ajax与增删改查(一)
自入手新项目以来,一直处于加班状态,博客也有两周没更,刚刚完成项目的两个模组,稍有喘息之机,写写关于项目中 的增删改查,这算是一个老生常谈的问题了,就连基本的教材书上都有.刚看书的时候,以为 没什么可 ...
- JDBC 1 利用Statement对数据库进行增删改查
准备工作 1新建po类:User private int id; private String name; private String pwd; set,get方法省略 2 新建UserDao类, ...
- 利用Servlet做一套增删改查
真的,稳住,考上研,利用两年逆袭.一步一步来,实在不行,最后最差也不过就是就回家种地,想想也不错. 前期准备配置 建一个动态web项目 新建Dynamic Web ProjectFile->Ne ...
随机推荐
- Spring知识点总结(五)Spring整合JDBC
1. 回顾JDBC a. java操作关系型数据的API.导入相关数据库的驱动包后可以通过JDBC提供的接口来操作数据库. b. 实现JDBC的六个步骤 ...
- Java笔试--代码纠错
package practice.javase; public abstract class Name { private String name; public abstract boolean i ...
- Oracle 11g RAC小结
1.查看数据库所有实例与状态 unixdev$[/home/grid]srvctl status database -d unixdev Instance unixdev11 is running o ...
- oracle远程导出/导入
创建db_link,远程导出/导入.expdp/impdp Oracle数据库本地磁盘空间有限,或应用系统的需要,会通过远程的方式导出数据库.在oracle当中,exp远程导库的速度太慢,而expdp ...
- 细说多线程之Thread与Runnable
1:创建线程的两种方式: 继承Thread类 public class MyThread extends Thread { @Override public void run() { } } MyTh ...
- linux服务基础之ftp服务
ftp是一种文件传输协议,我们以redhat6.9为服务器系统,来介绍一下ftp服务器,这里我们先介绍一下ftp协议工作的原理 ftp协议可以在不同类型的计算机之间传输文件,工作流程大致为 1:客户机 ...
- mysql中tinyint、smallint、mediumint,int 和bigint 的区别
1:字节的定义:字节(Byte):字节是通过网络传输信息(或在硬盘或内存中存储信息)的单位. 一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间 2.在mysql中一个汉字占三个 ...
- 转自 阿里云技术文档的 centos + PHP 环境 搭建
产品亮点 1.基于阿里云CentOS7.2镜像 2.采用yum方式安装,软件安装均为默认目录,未作任何修改. 3.采用经典LAMP组合,拓展性强,资源丰富,解决方案较多 4.附带PhpMyadmin和 ...
- 2.1 进程控制之fork创建子进程
fork()函数 目标:熟悉fork创建一个和多个子进程子线程 函数原型:pid_t fork(void); 返回值:成功返回:① 父进程返回子进程的ID(非负) ②子进程返回 0 : 失败返回-1. ...
- OMAPL多核异构通信驱动AD9833波形发生器-Notify组件
OMAPL多核异构通信驱动AD9833-Notify组件demo OMAPL多核通信有三个主要机制,Notify,MessageQ,RegionShare;这里主要利用了Notify机制进行通信控制. ...