2017-09-19 1 views
1

제목이 약간 혼란 스럽지만 한 문장으로 설명하기 위해 최선을 다했습니다. CodeIgniter로 구축 된 선택 필드에서 각도 변화를 사용하고 싶습니다. 이러한 선택은 배열에서 생성됩니다. 이들 중 하나를 변경하면 모든 선택 필드에 대해 동일한 값을 자동으로 선택한다는 것을 제외하고는 모두 정상입니다. ng 변경으로 선택하십시오. 모든 선택 필드가 자동으로 변경됩니다.

<?php $i=1; foreach ($data as $d) : ?> 
Username: <input type="text" value="<?php echo $d->username ?>" /><br/> 
Person: 
    <select ng-model="formData[<?php echo $i ?>].id" ng-change="updateUser()"> 
    <option value="1">Nina</option> 
    <option value="2">Naila</option> 
    <option value="3">Noni</option> 
    </select><br/> 
<?php $i++; endforeach; ?> 

그래서 내가 예를 들어, 첫 번째 선택 필드에 니나를 선택하여 선택을 변경하면, 모든 선택 필드가 자동으로 옵션 니나 선택합니다.

UPDATE : 컨트롤러에서 : 나는 콘솔에서 그것을 검사 때와

angular.module('myApp') 
.controller('userCtrl', function($scope,$http){ 

    $scope.formData = {}; 
    $scope.updateUser = function(){ 
     for (var i=1; i < $scope.formData.length; i++){ 
     console.log($scope.formData[i]); 
     } 
    } 

, 나는 아무것도 없어.

선택했지만 여전히 행운이라는 이유로 name=id[]을 추가하려고했습니다. 도와주세요. 감사.

+3

모든 모델에서 동일한 모델 'ng-model = "formData.id"를 사용하고 있기 때문입니다. –

+0

그래서 그게 문제입니다. 그래서 내가 선택한 옵션 값을 가져와야 할 때 이것을 피하기 위해해야 ​​할 일을 말해 줄 수 있습니까? – Abaij

+0

@Abaij 그 대답을 확인하고 그것이 당신의 질문에 대답하면 알려주세요 :) –

답변

2

나는 AngularJS과 함께 php 개의 뷰를 함께 섞지 않아도되지만 모델 인덱스를 기반으로 만들 수는 없으므로 변경할 수는 없습니다. (주석에서 언급했듯이 여기의 문제는 모두 select elements에 대해 동일한 ngModel을 사용하고 있습니다. 이런 식으로 작동 할 수 있습니다 :

<?php $index = 0; ?> 
<?php foreach ($data as $d) : ?> 
Username: <input type="text" value="<?php echo $d->username ?>"/><br/> 
Person: 
<select ng-model="formData[<?php echo $index ?>].id" ng-change="updateUser()"> 
    <option value="1">Nina</option> 
    <option value="2">Naila</option> 
    <option value="3">Noni</option> 
</select><br/> 
<?php $index++; ?> 
<?php endforeach; ?> 
+0

예, 이제 자동으로 변경되지는 않지만 '알 수없는'값이 있습니다. 각도 컨트롤러에서 검색하는 방법을 모르겠습니다. – Abaij

+0

angularjs 컨트롤러에서'formData' 배열을 확인해야합니다. 모든 값을 포함해야합니다. 컨트롤러에서 관련 코드를 게시 할 수 있습니까? –

+0

방금 ​​내 질문을 업데이트합니다. 확인해주십시오. 감사합니다 – Abaij

1

귀하의 문제는 각 ng-modelformData.id을 사용하고 있기 때문입니다. 따라서 ng-model은 "1"(Nina)로 업데이트되고 formData.id을 사용하는 모든 선택 요소는 "1"(Nina)로 변경됩니다. 컨트롤러에서

<?php $index = 0; ?> 
<?php foreach ($data as $d) : ?> 
Username: <input type="text" value="<?php echo $d->username ?>"/><br/> 
Person: 
<select ng-model="formData[<?php echo $index ?>].id" ng-change="updateUser()"> 
    <option value="1">Nina</option> 
    <option value="2">Naila</option> 
    <option value="3">Noni</option> 
</select><br/> 
<?php $index++; ?> 
<?php endforeach; ?> 

상기 formData 어레이를 초기화 : $scope.formData = []; 을 다음 formData [0]를 제 1 선택 값을 가질 것이다 .ID, formData [1] 등의 초 .ID

+1

'ng-model = "formData []. id"'에 감사드립니다. 그건 중요해. – Abaij