开发笔记-----Ajax 基础使用
一、GET 方式的用法:
1 <!--html -->
2 <div class="layui-form">
3 <div class="layui-form-item">
4 <div class="layui-inline">
5 <label class="layui-form-label">IDC:</label>
6 <div class="layui-input-inline">
7 <select id="idc_addr">
8 <option value="">选择地址</option>
9 <option value="FT">丰台</option>
10 <option value="SH">沙河</option>
11 </select>
12 </div>
13 </div>
14
15 <div class="layui-inline">
16 <label class="layui-form-label">数量</label>
17 <div class="layui-input-inline">
18 <input type="text" class="layui-input" id="num" placeholder="访问最低数量或排名">
19 </div>
20 </div>
21 <div class="layui-inline" style="">
22 <button type="submit" id="btn" onclick="mycheck()" class="layui-btn">提交</button>
23 </div>
24 </div>
25 </div>
26
27 //js 配置
28 <script src="/static/monitor/js/echarts.min.js"></script>
29 <script src="/static/monitor/js/sweetalert.min.js"></script>
30 <script type="text/javascript">
31 function mycheck(){
32 chart.showLoading();
33 getdata();
34 }
35 function getdata(){
36 var idc_addr=$('#idc_addr option:selected').val();
37 var num=document.getElementById("num").value;
38 if(idc_addr!="" && num!=""){
39 $.ajax({
40 type: "GET",
41 data:{"num":num ,"idc_addr":idc_addr,},
42 url: "http://192.168.3.83:/sankey/",
43 dataType: 'json',
44 success: function (result) {
45 chart.setOption(result.data);
46 chart.hideLoading();
47 }
48 });
49 }else{
50 swal("warning","请输入查询条件!!!!","warning");
51 chart.hideLoading();
52 }
53 }
54 </script>
55
56 #后台配置 django+python
57 def sankey_base(request): #展示方式:xq(详情),top(top_N)
58 num = request.GET.get('num',100) #获取和 赋默认值
59 idc_addr = request.GET.get('idc_addr','FT') #获取IDC名称
60 print(num,idc_addr)
61 return render(request,'monitor/home.html')
二、POST方式的用法:
<!-- html -->
<form style="display: inline" onsubmit="return false" action="##" method="post">
{% csrf_token %}
<div>
<label for="user_id">用户名:</label>
<input type="text" name="username" maxlength="35" onblur="checkInput()" oninput="changeBtnable()" autofocus required id="user_id" placeholder="请输入用户名前缀"> @testmail.com
</div><br/><br/>
<button type="submit" id="btn" disabled onclick="add_user()" class="btn btn-primary">
<i class="fa fa-plus" aria-hidden="true"></i> 添加用户
</button>
</form> //Javascript
<script type="text/javascript">
//添加用户
function add_user(){
var url = window.location.href;
var file_obj = new FormData;
file_obj.append('username',$("#user_id").val());
file_obj.append('csrfmiddlewaretoken',$('[name=csrfmiddlewaretoken]').val()); //获取token
$.ajax({
type:"POST",
dataType:"json",
url:"/add_user/",
processData: false,
contentType: false,
data:file_obj,
success:function(data){
swal({
title: "result",
text: data['message'],
icon:data['type'],
type:"success"}).then(function(){
location.reload(); //点击确定时,重新加载页面
}
);
}
});
}
</script> ####views.py
def add_user(request):
msg = ''
if request.is_ajax():
pwd = pwd_create()
username = str(request.POST['username'])
user_mail = username+mail_dc
create_user = "echo `/opt/zimbra/bin/zmprov ca %s '%s' ` "%(user_mail,pwd)
out,err = conn_server(create_user)
if len(out[0])==37 and '-'in out[0]:
msg = '用户创建成功!'+'\n'+'用户名: %s'%user_mail + '\n'+'密码:%s'%pwd
return JsonResponse({'status': 200,'type':'success' ,'message':msg})
else:
if 'ACCOUNT_EXISTS' in err[0]:
msg = '用户名: %s 已存在,请重新输入。'%user_mail
return JsonResponse({'status': 200,'type':'error', 'message':msg})
else:
return redirect('manager:home') ####urls.py
urlpatterns = [
path('',views.home,name='home'),
path('add_user/',views.add_user,name='add_user'),
]
开发笔记-----Ajax 基础使用的更多相关文章
- iOS开发笔记系列-基础1(数据类型与表达式)
学习iOS开发快两年了,去年完成MagViewer之后就因为公司的其他业务繁重,除了维护这个应用之外,只是断断续续地自己做一些实验开发,没有再发布新的应用,这里想整理一下学习过程中的笔记,以便加深印象 ...
- iOS开发笔记系列-基础2(类)
面向对象编程总是离不开类和对象的,Objective-C也不例外,不过Objective-C中的类还有一些自己的独特点. 类的声明和定义 在iOS开发中,类的声明与定义通常都是分开的,类得声明通常存放 ...
- IOS科研IOS开发笔记学习基础知识
这篇文章是我的IOS学习笔记,他们是知识的基础,在这里,根据记录的查询后的条款. 1,UIScrollView能完毕滚动的功能. 示比例如以下: UIScrollView *tableScrollVi ...
- iOS开发笔记系列-基础6(预处理程序)
预处理程序提供了一些工具,使用这些工具更易于开发.阅读.修改程序,也易于将程序移植到不同的系统中.又称为宏. #define #define语句的基本用途之一就是给富豪名称指定程序常量.比如: #de ...
- iOS开发笔记系列-基础3(多态、动态类型和动态绑定)
多态:相同的名称,不同的类 使不同的类共享相同方法名称的能力成为多态.它让你可以开发一组类,这组类中的每一个类都能响应相同的方法名.每个类的定义都封装了响应特定方法所需要的代码,这使得它独立于其他的类 ...
- iOS开发笔记系列-基础7(C语言特性)
Objective-C是C语言的扩展,因此,也具备很多C语言的基本特性,这里只罗列部分. 块(Blocks) 块是对C语言的一种扩展,它并未作为标准ANSI C所定义的部分,而是Apple添加到语言中 ...
- iOS开发笔记系列-基础5(分类和协议)
分类 在Objective-C中,除了通过新建子类的方式来向类添加新方法外,还可以通过分类的方式.分类提供了一种简单的方式,将类的定义模块化到相关方法的组或分类中,它还提供了扩展现有类定义的简便方式, ...
- iOS开发笔记系列-基础4(变量与数据类型)
对象的初始化 对象的初始化方法一般都如下: -(id)init { self=[super init]; if(self){ ... } return self; } 这个方法首先会调用父类的初始化方 ...
- 《ArcGIS Runtime SDK for Android开发笔记》
开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>——(1).And ...
随机推荐
- 微信小程序开发者工具更新后报很多错误
很有可能是不小心改动微信开发者工具的基础库版本了, 在文件 project.config.json 中 "libVersion": "2.9.3", 变成 &q ...
- 告别Kafka Stream,让轻量级流处理更加简单
一说到数据孤岛,所有技术人都不陌生.在 IT 发展过程中,企业不可避免地搭建了各种业务系统,这些系统独立运行且所产生的数据彼此独立封闭,使得企业难以实现数据共享和融合,并形成了"数据孤岛&q ...
- Shell系列(19)- 正则表达式
正则表达式与通配符 正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配.grep,awk,sed等命令可以支持正则表达式. 通配符用来匹配符号条件的文件名,通配符是完全匹配.ls,find,c ...
- 一文让你彻底理解SELECT语句的执行逻辑
正常情况下SELECT的书写顺序和执行顺序: 书写顺序: SELECT>FROM >WHERE>GROUP BY>HAVE>ORDER BY 执行顺序: FROM > ...
- test,exec,match,replace方法区别 正则
这四种方法都是用来检测字符串是否包含某一子串或是否匹配否个正则表达式 test方法,匹配返回true,不匹配返回false match,匹配返回匹配到的数组(包含多次/g),匹配一次返回包含匹配子串的 ...
- jmeter旅程第一站:Jmeter抓包浏览器或者抓取手机app的包
学习jmeter?从实际出发,我也是一个初学者,会优先考虑先用来做一些简单的抓包.接口测试,在实践的过程中学习jmeter用途.那么接下来,这篇文章我会以jmeter抓包开启我的jmeter旅程. 这 ...
- CF622F-The Sum of the k-th Powers【拉格朗日插值】
正题 题目链接:https://www.luogu.com.cn/problem/CF622F 题目大意 给出\(n,k\),求 \[\sum_{i=1}^ni^k \] 解题思路 很经典的拉格朗日差 ...
- P5956-[POI2017]Podzielno【数学】
正题 题目链接:https://www.luogu.com.cn/problem/P5956 题目大意 \(B\)进制下,给出序列\(a\),\(a_i\)表示数字\(i\)有多少个.求一个最大的\( ...
- UOJ#33-[UR #2]树上GCD【长链剖分,根号分治】
正题 题目链接:https://uoj.ac/problem/33 题目大意 给出\(n\)个点的一棵树 定义\(f(x,y)=gcd(\ dis(x,lca),dis(y,lca)\ )\). 对于 ...
- WPF进阶技巧和实战06-控件模板
逻辑树和可视化树 System.Windows.LogicalTreeHelper System.Windows.Media.VisualTreeHelper 逻辑树类(LogicalTreeHelp ...