angular $http 与form表单的select

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

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


html

  1 <!DOCTYPE html>
  2 <html ng-app="a2_15">
  3 <head>
  4     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5     <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
  6     <meta content="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" name="viewport">
  7     <title>使用指令复制元素</title>
  8     <style type="text/css">
  9         body {
 10             font-size: 14px;
 11         }
 12 
 13         ul {
 14             list-style-type: none;
 15             width: 400px;
 16         }
 17 
 18         ul li {
 19             float: left;
 20             padding: 5px;
 21         }
 22 
 23         ul li span {
 24             float: left;
 25             width: 50px
 26         }
 27     </style>
 28     <script src="js/angular.min.js"></script>
 29 
 30 </head>
 31 <body>
 32 
 33 <form name="temp_form" ng-controller="c2_15">
 34     <div>
 35         产品线:
 36         <select ng-model="a"
 37                 ng-options="v.id as v.name for v in a_data"
 38                 ng-change="a_change(a)">
 39             <option value="">--please select--</option>
 40         </select>
 41     </div>
 42 
 43     <div>
 44         产品:
 45         <select ng-model="b"
 46                 ng-options="v.id as v.name for v in b_data"
 47                 ng-change="b_change(b)">
 48             <option value="">--please select--</option>
 49         </select>
 50     </div>
 51 
 52     <div>
 53         版本:
 54         <select ng-model="c"
 55                 ng-options="v.id as v.name for v in c_data"
 56                 ng-change="c_change(c)">
 57             <option value="">--please select--</option>
 58         </select>
 59     </div>
 60 
 61     <div>
 62         代码:
 63         <select ng-model="d"
 64                 ng-options="v.id as v.name for v in d_data"
 65                 ng-change="d_change(d)">
 66             <option value="">--please select--</option>
 67         </select>
 68     </div>
 69 </form>
 70 
 71 <script type="text/javascript">
 72     var a2_15 = angular.module('a2_15', []);
 73     a2_15.controller('c2_15', ['$scope','$http', function ($scope, $http) {
 74         // 默认值
 75         $scope.a = "";
 76         $scope.b = "";
 77         $scope.c = "";
 78         $scope.d = "";
 79 
 80         // 填充选项
 81         // 填充a
 82         $http({
 83             method:'POST',
 84             url:'data/zz.php',
 85             params:{
 86                 id:"",
 87                 type:"pl"
 88             }
 89         }).success(function (data,status,headers,config) {
 90             $scope.a_data=data;
 91 
 92             // 填充b
 93             $http({
 94                 method:'POST',
 95                 url:'data/zz.php',
 96                 params:{
 97                     id:$scope.a_data[0].id,
 98                     type:"p"
 99                 }
100             }).success(function (data,status,headers,config) {
101                 $scope.b_data=data;
102 
103                 // 填充c
104                 $http({
105                     method:'POST',
106                     url:'data/zz.php',
107                     params:{
108                         id:$scope.b_data[0].id,
109                         type:"r"
110                     }
111                 }).success(function (data,status,headers,config) {
112                     $scope.c_data=data;
113 
114                     // 填充d
115                     $http({
116                         method:'POST',
117                         url:'data/zz.php',
118                         params:{
119                             id:$scope.c_data[0].id,
120                             type:"c"
121                         }
122                     }).success(function (data,status,headers,config) {
123                         $scope.d_data=data;
124                     });
125                 });
126             });
127         });
128 
129         // change监听
130         $scope.a_change=function (a) {
131             // 填充b
132             $http({
133                 method:'POST',
134                 url:'data/zz.php',
135                 params:{
136                     id:$scope.a,
137                     type:"p"
138                 }
139             }).success(function (data,status,headers,config) {
140                 $scope.b="";
141                 $scope.b_data=data;
142 
143                 // 填充c
144                 $http({
145                     method:'POST',
146                     url:'data/zz.php',
147                     params:{
148                         id:$scope.b_data[0].id,
149                         type:"r"
150                     }
151                 }).success(function (data,status,headers,config) {
152                     $scope.c="";
153                     $scope.c_data=data;
154 
155                     // 填充d
156                     $http({
157                         method:'POST',
158                         url:'data/zz.php',
159                         params:{
160                             id:$scope.c_data[0].id,
161                             type:"c"
162                         }
163                     }).success(function (data,status,headers,config) {
164                         $scope.d="";
165                         $scope.d_data=data;
166                     });
167                 });
168             });
169         };
170         $scope.b_change=function (b) {
171             // 填充c
172             $http({
173                 method:'POST',
174                 url:'data/zz.php',
175                 params:{
176                     id:$scope.b,
177                     type:"r"
178                 }
179             }).success(function (data,status,headers,config) {
180                 $scope.c="";
181                 $scope.c_data=data;
182 
183                 // 填充d
184                 $http({
185                     method:'POST',
186                     url:'data/zz.php',
187                     params:{
188                         id:$scope.c_data[0].id,
189                         type:"c"
190                     }
191                 }).success(function (data,status,headers,config) {
192                     $scope.d="";
193                     $scope.d_data=data;
194                 });
195             });
196         };
197         $scope.c_change=function (c) {
198             $http({
199                 method:'POST',
200                 url:'data/zz.php',
201                 params:{
202                     id:$scope.c,
203                     type:"c"
204                 }
205             }).success(function (data,status,headers,config) {
206                 $scope.d="";
207                 $scope.d_data=data;
208             });
209         };
210         $scope.d_change=function (d) {
211         }
212     }]);
213 
214 </script>
215 </body>
216 </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);
}
?>

  

原文地址:https://www.cnblogs.com/zyjzz/p/5679138.html