2017-09-26 9 views
1

AngularJSとJSONが詰まっています。 私はform.htmlというビューを持っており、ユーザーは自分の都道府県を選択できます。 Province JSONファイルを作成してselectタグを作成しましたが、mySQLを保存するときにIdが必要ですId オプションタグでng-value = "province.id"を試しましたが動作しません。ユーザーが都道府県を選択すると同時にどのようにpid(provinceId)を取得できますか?選択フォームでAngularJSのJSONからプロパティを取得する方法

province.JSON

[ 
    { 
    "pid" : 1, 
    "name" : "Ontario" 
    }, 
    { 
    "pid" : 2, 
    "name" : "Québec" 
    }, 
    { 
    "pid" : 3, 
    "name" : "Nova Scotia" 
    }, 
    { 
    "pid" : 4, 
    "name" : "New Brunswick" 
    }, 
    ... 

form.html

<select name="province" ng-model="user.province" ng-required="true"> 
<option value="">--- Please select ---</option> 
<option ng-repeat="province in provinces">{{province.name}}</option> 
</select> 

controllers.js

$scope.submitForm = function (user) {    
    dataObj = { 
     "name": user.name,   //it works and all fine 
     "province": user.province, //it works and all fine 
     "telephone": user.telephone, //it works and all fine 
     "postalcode": user.postalcode, //it works and all fine 
     "salary": user.salary,   //it works and all fine 
     "provinceId" : user.pid  // undefine .. 
    } 
+0

そして、PHPの一部ですか...? – Twinfriends

+0

' {{province.name}}'? –

+0

PHPは重要ですか?私は私のPHPは大丈夫だと思う – Jason

答えて

0

これを試してみてください:

var app = angular.module('myApp', []); 
 
app.controller('myCtrl', function($scope) { 
 
    $scope.user = {}; 
 
    $scope.provinces = [{ 
 
         "pid" : 1, 
 
         "name" : "Ontario" 
 
         }, 
 
         { 
 
         "pid" : 2, 
 
         "name" : "Québec" 
 
         }, 
 
         { 
 
         "pid" : 3, 
 
         "name" : "Nova Scotia" 
 
         }, 
 
         { 
 
         "pid" : 4, 
 
         "name" : "New Brunswick" 
 
         } 
 
         ]; 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script> 
 
<div ng-app="myApp" ng-controller="myCtrl"> 
 
<select name="contactCountry" ng-model="user.province" ng-options="item.pid as item.name for item in provinces" ><option value="">Select provinces</option> 
 
</select> 
 
<br> 
 
<p>Selected Province Id = {{user.province}}</p> 
 
</div>

それは!!お役に立てば幸いです。 {「:1 PID」、「名」:「オンタリオ」}、ユーザーが送信したとき

+0

の前に試してみました!それは動作しますが、州名を取得するにはどのようにすればよいのでしょうか? – Jason

+0

ありがとう、実際に私はいくつかのコードを編集して私のために働いた私はあなたから感謝のコンセプトを得た! – Jason

+0

私の答えを受け入れてください.. – Raghav

0

selectタグは、のようなオブジェクトのようになりますので、私は、ポイントは、私がojectとして作るべきである私のコントローラで

を取得することができます。

htmlファイル

<select name="province" ng-model="user.province" ng-options="item.name for item in provinces" class="form-control input-lg" ng-required="true"> 
    <option value="">Select provinces</option> 
<select> 

controllers.js

myFactory.set(user);     
    dataObj = { 
     "name": user.name, 
     "province": user.province.name, 
     "telephone": user.telephone, 
     "postalcode": user.postalcode, 
     "salary": user.salary, 
     "pid" : user.province.pid 
    } 
関連する問題