zabbix的群组和主机的select二级联动
2017-11-23 17:27
162 查看
zabbix的群组和主机的select二级联动,ajax异步处理,先从数据库获取群组数据,当点击群组时,再从数据库加载主机
通过zabbix官方给出的API接口,允许通过JSON RPC 协议创建、更新和获取zabbix对象如,hosts, items, graphs and others。或者执行其他任务,官方API接口
auth通过本地存储已经存储在本地了,不然需要先登录,获取通行证
result便是下面的auth值,返回结果为:
HTML代码:
JS代码:
通过zabbix官方给出的API接口,允许通过JSON RPC 协议创建、更新和获取zabbix对象如,hosts, items, graphs and others。或者执行其他任务,官方API接口
auth通过本地存储已经存储在本地了,不然需要先登录,获取通行证
{ "jsonrpc": "2.0", "method": "user.login", "params": { "user": "Admin", "password": "zabbix" }, "id": 1 }
result便是下面的auth值,返回结果为:
{ "jsonrpc": "2.0", "result": "65e0306809176ce6737bced34147b0b4", "id": 1 }
HTML代码:
<div class="form-group"> <label>群组</label> <select id="groupid" name="groupid"> <option value="0">所有</option> </select> </div> <div class="form-group"> <label>主机</label> <select id="hostid" name="hostid" > <option value="">所有</option> </select> </div>
JS代码:
var httpctx = 'http://111111'; //发送请求request,获取主机群组名字 function hostgroup_getName() { var hostgroup_get_data = { "jsonrpc": "2.0", "method": "hostgroup.get", "params": { "output": "extend", "real_hosts": true//包含主机的群组 }, "auth": localStorage.getItem('auth'), "id": 1 }; //执行请求,并将服务器返回的response结果转换为数组格式,并输出到指定内容上 $.ajax({ type: "post", url: httpctx, async: true, dataType: 'json', //服务器返回json数据 contentType: 'application/json', timeout: 5000, //超时时间设置为5秒 data: JSON.stringify(hostgroup_get_data), success: function(data) { $('#groupid').attr("length", '0'); for(var i = 0; i <= data.result.length - 1; i++) { $("#groupid").append($('<option value=' + data.result[i].groupid + '>' + data.result[i].name + '</option>')); } } }); } //发送请求request,根据主机群组ID,获取主机名字 var Allhost_data = { "jsonrpc": "2.0", "method": "host.get", "params": { "output": "extend", "monitored_hosts": true//仅返回受监视的主机 }, "auth": localStorage.getItem('auth'), "id": 1 }; //执行请求,并将服务器返回的response结果转换为数组格式,并输出到指定内容上 function host_getName(aData) { 4000 $.ajax({ type: "post", url: httpctx, async: true, dataType: 'json', //服务器返回json数据 contentType: 'application/json', timeout: 5000, //超时时间设置为5秒 data: JSON.stringify(aData), success: function(data) { $('#hostid').attr("length", '0'); for(var i = 0; i <= data.result.length - 1; i++) { $("#hostid").append($('<option value=' + data.result[i].hostid + '>' + data.result[i].name + '</option>')); } } }); } //群组select框点击事件。获取对应主机值 function Groupid_click() { var selected_Gid = localStorage.getItem('selectedGroupid'); if(selected_Gid == 0) { host_getName(Allhost_data); } var aSelected_Gids = '"' + selected_Gid + '"'; var SeHost_data = { "jsonrpc": "2.0", "method": "host.get", "params": { "groupids": JSON.parse(aSelected_Gids), "getAccess": "flag" }, "auth": localStorage.getItem('auth'), "id": 1 }; $("#hostid").append($('<option>所有</option>')); host_getName(SeHost_data); }
相关文章推荐
- sencha touch selectfield 二级联动的例子
- asp javascript 二级联动select 产品大类,小类
- jquery实现select二级联动
- 最简单js代码实现select二级联动下拉菜单
- 基于jQuery的二级联动<select>
- jsp+javascript实现动态下拉二级联动(select+option)
- jQuery 简单实现无刷新select二级联动
- <s:select>二级联动
- js基础-input对象,select对象,实例:二级联动菜单
- 通同select便签实现简单的二级联动
- jQuery 1.3.2 简单实现select二级联动
- AjaxPro 实现 三级联动菜单时,出现二级select 闪烁问题
- jQuery 简单实现select二级联动
- js入门·表单元素(select下拉列表)制作二级联动菜单和网站导航
- 二级联动菜单select标签option遍历list取值
- jQuery 简单实现select二级联动
- select二级联动,数据库动态加载
- 简易select二级联动
- 基于JSP Servlet xml的select二级联动
- AngularJs写的select的二级联动