django建立管理系统之五----单页ajax数据交互
ajax数据提交:
需求:
1. 点击ajax方式提交后数据提交到后台数据库,并且在前台实现数据更新
a.可以用刷新页面来实现数据页面的更新
对应的html,实现局部刷新(可以用刷新页面实现,例如
$(
function
(){
refresh();
});
//点击按钮调用的方法
function
refresh(){
window.location.reload();
//刷新当前页面.
}
)
b.也可以使用js网页拼凑方法来实现页面局部刷新
model页面如下:
model html:
<div class="model hide">
<form method="post" action="/classes.html" >
<input name="id" type="text" class="hide" />
<input name="caption" type="text" placeholder="确定" />
<input id="id_modal_cancel" type="button" value="取消"/>
<input type="submit" value="Submit"/>
<input type="button" id="modal_ajax_submit" value="Ajax方式提交"/>
</form>
</div>
table:
table html:
{% for item in cls_list %}
<tr>
<td alex="id">{{ item.id }}</td>
<td alex="caption">{{ item.caption }}</td>
<td><a class="td-edit">编辑</a>| <a target="_blank" href="/edit_classes.html?nid={{ item.id }}">跳转编辑</a> | <a class="td-delete">删除</a></td>
</tr>
{% endfor %}
-------------------
js开始拼凑:
要拼凑的格式: /*
<tr>
<td>{{ item.id }}</td>
<td>{{ item.caption }}</td>
<td>
<a class="td-edit">编辑</a> | <a class="td-delete">删除</a>
</td>
</tr>
*/
开始拼凑:
function bindSubmitModal() {
$('#modal_ajax_submit').click(function () {
var nid = $('.modal input[name="id"]').val();
var value = $('.modal input[name="caption"]').val();
$.ajax({
url: SUBMIT_URL,
type: 'POST',
data: {caption: value,id: nid},
dataType: "JSON",
success: function (rep) {
//data = JSON.parse(data);
if(!rep.status){
alert(rep.error);
}else{
// location.reload();
// 通过js在table表格最后追加一行数据,追加的数据就是当前增加的数据
/*
<tr>
<td>{{ item.id }}</td>
<td>{{ item.caption }}</td>
<td>
<a class="td-edit">编辑</a> | <a class="td-delete">删除</a>
</td>
</tr>
*/
var tr = document.createElement('tr');
var td1 = document.createElement('td');
// td1ID
td1.innerHTML = rep.data.id;
var td2 = document.createElement('td');
// td2标题
td2.innerHTML = rep.data.caption;
var td3 = document.createElement('td');
td3.innerText = "|";
var a1 = document.createElement('a');
a1.innerHTML = "编辑";
a1.className = "td-edit"
var a2 = document.createElement('a');
a2.className = "td-delete";
a2.innerHTML = "删除";
$(td3).prepend(a1);
$(td3).append(a2);
$(tr).append(td1);
$(tr).append(td2);
$(tr).append(td3);
$('table tbody').append(tr);
$('.modal,.shade').addClass('hide');
}
}
}) })
}
--------------------------------事件委托------------------------
-----新创建的元素没有绑定js,因为js早已经载入完毕,这是可以通过事件委托给他绑定:
function bindTdEditEvent() {
/*
$('td .td-delete').click(function () {
$('.remove,.shade').removeClass('hide');
})
*/
$('tbody').on('click', '.td-edit', function () {
$('.model,.shadow').removeClass('hide');
SUBMIT_URL = "/up_classes.html";
/*
var tds = $(this).parent().prevAll();
$('.modal input[name="caption"]').val(tds[0].innerText);
$('.modal input[name="id"]').val(tds[1].innerText);
*/
$(this).parent().prevAll().each(function () {
var text = $(this).text();
var name = $(this).attr('alex');
$('.model input[name="' + name +'"]').val(text);
}) })
} ---------------------------------------------------- 分页实现(自定义,非插件)
---------------------------------------------------
django建立管理系统之五----单页ajax数据交互的更多相关文章
- 前端 SPA 单页应用数据统计解决方案 (ReactJS / VueJS)
前端 SPA 单页应用数据统计解决方案 (ReactJS / VueJS) 一.百度统计的代码: UV PV 统计方式可能存在问题 在 SPA 的前端项目中 数据统计,往往就是一个比较麻烦的事情,Re ...
- 弹出层和ajax数据交互
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs& ...
- SpreadJS V13.0发布,聚焦表单设计与数据交互,让您的工作效率突飞猛进!
纯前端表格控件SpreadJS,是一款成功应用于华为.招商银行.天弘基金.苏宁易购等国内外知名企业的前端开发工具,其带来的价值不仅体现在帮助开发人员在其Web应用程序中快速构建 Web Excel . ...
- Django学习笔记(8)——前后台数据交互实战(AJAX)
这里将自己这段时间学习的关于前后台数据交互的笔记写在这里,这里包含了Django传输数据给JS,AJAX的相关问题,跨域问题,如何解决AJAX的跨域问题等等.比较凌乱,请看到这篇博客的盆友见谅,如果我 ...
- VueJS搭建简单后台管理系统框架 (二) 模拟Ajax数据请求
开发过程中,免不了需要前台与后台的交互,大部分的交互都是通过Ajax请求来完成,在服务端未完成开发时,前端需要有一个可以模拟Ajax请求的服务器. 在NodeJs环境下,通过配置express可访问的 ...
- DEDECMS之五 单页
在网站开发中经常碰到关于我们.联系方式等简单的页面,那么在DEDECMS中如何实现? 一.效果 以上左侧导航的链接都是单页,右边为内容部分 二.单页的实现 创建频道封来实现 1.常规选项 2.高级选项 ...
- ajax数据交互
目录 一.ORM查询优化 1-1. only与defer 1-2. select_related与prefatch_related 二.MTV与MVC模型 三.choices参数 四.AJAX 4-1 ...
- Struts2与Ajax数据交互
写在前面: ajax请求在项目中常常使用,今天就平时掌握的总结一下,关于使用ajax请求到Struts2中的action时,前台页面与后台action之间的数据传递交互问题. 这里我主要记录下自己所掌 ...
- Django框架form表单配合ajax注册
总结一下,其实form组件的主要功能如下: 生成页面可用的HTML标签 对用户提交的数据进行校验 保留上次输入内容 下面是写的登录页面的实例 1:views视图中的代码 # 注册页面 def regi ...
随机推荐
- 函数function
function add(x,y,z){ sum = x + y +z; document.write(x+"+"+y+"+"+z+"="+ ...
- Git自学笔记
Git是什么? Git是目前世界上最先进的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git与SVN的区别有哪些? ① Git是分布式的,SVN不是.这是Git和其它非分布式版本控制系 ...
- o2o、c2c、b2c、b2b、b2b2c都是什么?
o2o:线上线下,如线上消费,线下享受服务,o2o是不需要物流的,是线上购买的东西,自己去线下获得.c2c:个人对个人,消费者与消费者之间的小成本交易,买卖双方都不是公司,如你在咸鱼上卖自己的东西.b ...
- fiddler抓https包
若手机端安装证书后还是无法抓取到https请求,请注意手机端证书开关是否开启: eg:ios 设置---通用---关于本机---证书信任设置:开启证书信任 若还是无法抓包,则可以进行一下操作: 给fi ...
- Android studio使用android:style/Theme.Dialog报错:You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
查找原因是在activity java代码部分继承了compatactivity public class DialogActivity extends AppCompatActivity 但是在An ...
- python入门(十四):面向对象(属性、方法、继承、多继承)
1.任何东西1)属性(特征:通常可以用数据来描述)(类变量和实例变量)2)可以做一些动作(方法) 类来管理对象的数据.属性:类变量和实例变量(私有变量)方法: 1)实例方法 2)类方法 ...
- C语言典型编程2
关于C的一些小而精的编程,适合希望提升编程能力的初学者学习:关键编程也就几句,但思维可以迁移到其他编程语言.同一问题,算法多种. //任意整数的任意次方取后3位(算数取位)#include<st ...
- linux查看Java线程
一.查看Java进程pid的方式 1. ps命令 ps -ef | grep java 2. jvm自带的 jps 工具 3. 当然还有其他命令也可以显示 netstat ,top 二.查看Java线 ...
- linux 安装 mysql
二进制安装mysql 1,下载安装包,使用国内站点速度会比较快,如清华站点https://mirrors.tuna.tsinghua.edu.cn 登陆linux系统后,使用wget 进行下载mysq ...
- j2EE基础知识
感觉应付面试足够了 一.基本概念 1.1 WEB开发的相关知识 WEB用于表示Internet主机上供外界访问的资源. Intrenet上供外界访问Web资源分为 静态web资源:web页面中供人们浏 ...