产品线 产品 版本 代码是联动关系

ng-model 绑定数据 设置默认值
ng-options 填充option
ng-change 选项变化时的操作
截图如下:


html

 <!DOCTYPE html>
<html ng-app="a2_15">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
<title>使用指令复制元素</title>
<style type="text/css">
body {
font-size: 14px;
} ul {
list-style-type: none;
width: 400px;
} ul li {
float: left;
padding: 5px;
} ul li span {
float: left;
width: 50px
}
</style>
<script src="js/angular.min.js"></script> </head>
<body> <form name="temp_form" ng-controller="c2_15">
<div>
产品线:
<select ng-model="a"
ng-options="v.id as v.name for v in a_data"
ng-change="a_change(a)">
<option value="">--please select--</option>
</select>
</div> <div>
产品:
<select ng-model="b"
ng-options="v.id as v.name for v in b_data"
ng-change="b_change(b)">
<option value="">--please select--</option>
</select>
</div> <div>
版本:
<select ng-model="c"
ng-options="v.id as v.name for v in c_data"
ng-change="c_change(c)">
<option value="">--please select--</option>
</select>
</div> <div>
代码:
<select ng-model="d"
ng-options="v.id as v.name for v in d_data"
ng-change="d_change(d)">
<option value="">--please select--</option>
</select>
</div>
</form> <script type="text/javascript">
var a2_15 = angular.module('a2_15', []);
a2_15.controller('c2_15', ['$scope','$http', function ($scope, $http) {
// 默认值
$scope.a = "";
$scope.b = "";
$scope.c = "";
$scope.d = ""; // 填充选项
// 填充a
$http({
method:'POST',
url:'data/zz.php',
params:{
id:"",
type:"pl"
}
}).success(function (data,status,headers,config) {
$scope.a_data=data; // 填充b
$http({
method:'POST',
url:'data/zz.php',
params:{
id:$scope.a_data[0].id,
type:"p"
}
}).success(function (data,status,headers,config) {
$scope.b_data=data; // 填充c
$http({
method:'POST',
url:'data/zz.php',
params:{
id:$scope.b_data[0].id,
type:"r"
}
}).success(function (data,status,headers,config) {
$scope.c_data=data; // 填充d
$http({
method:'POST',
url:'data/zz.php',
params:{
id:$scope.c_data[0].id,
type:"c"
}
}).success(function (data,status,headers,config) {
$scope.d_data=data;
});
});
});
}); // change监听
$scope.a_change=function (a) {
// 填充b
$http({
method:'POST',
url:'data/zz.php',
params:{
id:$scope.a,
type:"p"
}
}).success(function (data,status,headers,config) {
$scope.b="";
$scope.b_data=data; // 填充c
$http({
method:'POST',
url:'data/zz.php',
params:{
id:$scope.b_data[0].id,
type:"r"
}
}).success(function (data,status,headers,config) {
$scope.c="";
$scope.c_data=data; // 填充d
$http({
method:'POST',
url:'data/zz.php',
params:{
id:$scope.c_data[0].id,
type:"c"
}
}).success(function (data,status,headers,config) {
$scope.d="";
$scope.d_data=data;
});
});
});
};
$scope.b_change=function (b) {
// 填充c
$http({
method:'POST',
url:'data/zz.php',
params:{
id:$scope.b,
type:"r"
}
}).success(function (data,status,headers,config) {
$scope.c="";
$scope.c_data=data; // 填充d
$http({
method:'POST',
url:'data/zz.php',
params:{
id:$scope.c_data[0].id,
type:"c"
}
}).success(function (data,status,headers,config) {
$scope.d="";
$scope.d_data=data;
});
});
};
$scope.c_change=function (c) {
$http({
method:'POST',
url:'data/zz.php',
params:{
id:$scope.c,
type:"c"
}
}).success(function (data,status,headers,config) {
$scope.d="";
$scope.d_data=data;
});
};
$scope.d_change=function (d) {
}
}]); </script>
</body>
</html>
 

  php

<?php
header("Content-Typent:text/json"); if($_GET["type"]=="pl"){
$stulist=array(
array('id'=>"1" ,'name'=>'产品线1' ),
array('id'=>"2" ,'name'=>'产品线2' )
);
echo json_encode($stulist);
}else if($_GET["type"]=="p"){
if($_GET["id"]=="1"){
$stulist=array(
array('id'=>"1" ,'name'=>'产品1' ),
array('id'=>"2" ,'name'=>'产品2' )
);
echo json_encode($stulist);
}else{
$stulist=array(
array('id'=>"1" ,'name'=>'产品3' ),
array('id'=>"2" ,'name'=>'产品4' )
);
echo json_encode($stulist);
}
}else if($_GET["type"]=="r"){
if($_GET["id"]=="1"){
$stulist=array(
array('id'=>"1" ,'name'=>'版本1' ),
array('id'=>"2" ,'name'=>'版本2' )
);
echo json_encode($stulist);
}else{
$stulist=array(
array('id'=>"1" ,'name'=>'版本3' ),
array('id'=>"2" ,'name'=>'版本4' )
);
echo json_encode($stulist);
}
}else if($_GET["type"]=="c"){
if($_GET["id"]=="1"){
$stulist=array(
array('id'=>"1" ,'name'=>'代码1' ),
array('id'=>"2" ,'name'=>'代码2' )
);
echo json_encode($stulist);
}else{
$stulist=array(
array('id'=>"1" ,'name'=>'代码3' ),
array('id'=>"2" ,'name'=>'代码4' )
);
echo json_encode($stulist);
}
}else{
$stulist=array(
array('id'=>"1" ,'name'=>'代码3' ),
array('id'=>"2" ,'name'=>'代码4' )
);
echo json_encode($stulist);
}
?>

  

angular $http 与form表单的select的更多相关文章

  1. React 之form表单、select、textarea、checkbox使用

    1.案例如下 import React from 'react'; /** * 非约束性组(类似defaultValue等属性,不可以程序修改): <input type="text& ...

  2. 前端 HTML form表单标签 select标签 option 下拉框

    <select></select> select里面通常跟option配合使用 <!DOCTYPE html> <html lang="en&quo ...

  3. form表单select联动

    下拉列表:二级联动菜单 Select对象的常用属性 options[]:返回所有option组成的一个数组: name:名称 value:option的value的值 length:设置或读取opti ...

  4. [原创]java WEB学习笔记62:Struts2学习之路--表单标签:form,表单标签的属性,textfield, password, hidden,submit ,textarea ,checkbox ,list, listKey 和 listValue 属性,select ,optiongroup ,checkboxlist

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. select标签 禁止选择但又能通过序列化form表单传值到后台

    前言 项目开发中,我们可能会碰到这样的需求:select标签,禁止选择但又能通过序列化form表单传值到后台,但是当我们使用disabled="disabled"时发现,无法序列化 ...

  6. select发生改变使用js提交form表单(get传值)

    form表单如下: <form id="my_form" method="get" action=""> <input t ...

  7. form表单提交,后台怎么获取select的值?后台直接获取即可,和input方式一样。

    form表单提交,后台怎么获取select的值? 后台直接获取即可,和后台获取input的值方式一样. form提交后,后台直接根据select的name获取即可,即getPara("XXX ...

  8. form表单验证-Javascript

    Form表单验证: js基础考试内容,form表单验证,正则表达式,blur事件,自动获取数组,以及css布局样式,动态清除等.完整代码如下: <!DOCTYPE html PUBLIC &qu ...

  9. Form 表单提交参数

    今天因为要额外提交参数数组性的参数给form传到后台而苦恼了半天,结果发现,只需要在form表单对应的字段html空间中定义name = 后台参数名 的属性就ok了. 后台本来是只有模型参数的,但是后 ...

随机推荐

  1. 跨域的另一种解决方案——CORS(Cross-Origin Resource Sharing)跨域资源共享

    在我们日常的项目开发时使用AJAX,传统的Ajax请求只能获取在同一个域名下面的资源,但是HTML5打破了这个限制,允许Ajax发起跨域的请求.浏览器是可以发起跨域请求的,比如你可以外链一个外域的图片 ...

  2. 搭建TFS 2015 Build Agent环境(三)

    在配置时,一定要注意下面的几个地方: 1.项目集合生成服务账号 中一定要包含: 2.Build Agent机器上防止Agent的路径一定要短,不要出现特殊字符,比如:C:\Agent 3.一定要安装V ...

  3. Windows 8 下离线安装。net Framework 3.5

    Windows 8 下安装.net Framework 3.5 1)可以将直接双击ISO (或放入光盘/U盘)(安装文件在F盘) 2)使用管理员权限运行命令行程序 3)dism.exe /online ...

  4. 2015年3月阿里内推(c++研发)实习生电面经历

    2015年3月开学开始就听说阿里会有内推,果不其然在师兄的引荐下推了菜鸟网络,但是在学校的BBS上看到了阿里云部门,而且要会C++,这使我更感兴趣,重新选择了方向,当然最后选择了阿里云.在此分享一下三 ...

  5. MapReduce实现手机上网日志分析(分区)

    一.问题背景 实际业务的需要,比如以移动为例,河南的用户去了北京上网,那么他的上网信息默认保存在了北京的基站,那么我们想要查询北京地区的上网日志信息默认也包含了其他地区用户的在本区的上网信息,否则只能 ...

  6. 正则表达式解析url参数

    解析url参数正则:(?<=\?|&)[\w\={}\\\\,-:'\s'""]*(?=[^#\s]|) 意思是(?<=\?|&) 从?或&符号 ...

  7. TYVJ1338 QQ农场

    时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 Sandytea前段时间沉迷于QQ农场中……一天夜里,他梦见来到好友X的农场上…… 描述 这个农场和游戏中略有 ...

  8. microsoft docx document operation with Java POI library

    microsoft docx document operation with Java POI library combine multiple docx document into one docu ...

  9. C#算法知识点记录

    针对算法的知识点进行记录 简易桶排序 首先看一个简易桶排序,有一串数字,进行从大到小排列.数字间隔不大,使用一维数组来当作桶,进行插入排序. static void Main(string[] arg ...

  10. Simple Network Management Protocol - SNMP Tutorial

    30.9 Simple Network Management Protocol Network management protocols specify communication between t ...