2013-03-21 2 views
0

AJAX의 데이터로 콤보 상자 (입력)를 채우려고합니다. 이것은 다른 도시 선택 컨트롤 (상태 컨트롤)에서 선택된 선택된 도시의 모든 도시를 가져 오는 것입니다. 상태 내가이 도시를 검색하고 도시 컨트롤에 값을 선택했을 때 나는 상태 콤보 상자에서 "변경"이벤트를 사용하고자바 스크립트 - 새 데이터로 콤보 상자 채우기

: 나는 무엇을 시도했다

.

  $("#state").on("change", function() { 

      getCities($(this), $("#city")); 
     }); 

실제로 작동하지만, 내 진짜 문제가 있다는 : 내가 컨트롤에이 데이터를 가져올 때, 내가 그것을 (이전 상태의 데이터가 여전히 존재) 리필 그것을 클릭해야, 내가 그것을 것 소원 상태 선택 입력에서 상태를 선택하면 완료됩니다. 그리고 또 다른 문제는 이것과 함께, 도시 선택 입력이 도시를 바꿀 때마다 첫 번째 옵션 (--- SELECT CITY ---)을 선택하는 것입니다. 여기에 기능 코드는 다음과 같습니다

function getCities(stateControl, cityControl) { 

    if (stateControl.val()) { 
     var options = '<option value="0" selected="selected">--- CHOOSE CITY --- </option>'; 
     cityControl.html(options); 
     var dataString = "state="+stateControl.val(); 
     $.ajax({ 
      type: "POST", 
      url: "cities.php", 
      data: dataString, 
      dataType: "json", 
      success: function (resposta) { 

        for(var i=0; i < resposta.length; i++){  
         options += '<option value="' + city[i].cod_cidade + '">' + cities[i].nome + '</option>';              
        }; 
        controleCidades.html(options); 
      } 
     }); 
    } 

}

+0

하십시오 disconsider 불일치의 변수 이름이 코드는 모든 포르투갈어이었고, 내가 변수를 올 번역하지만 일부 내가 잊고 있기 때문이다. (respostra, 또는 cod_cidades와 같은). 데이터가 올바르지 만 채워지는 문제가 있습니다. –

답변

0

jQuery를 :

$("#city").find('option').remove(); 

자바 스크립트 :

document.getElementById('city').options.length = 0; 

사용이 그 이전의 모든 옵션을 제거 한 후 추가하기 전에.

see here

+0

답변 주셔서 감사합니다! 직장에 있다면, 최대한 빨리 해보겠습니다. D –

+0

@Rafael F Violato ok 문제가 없습니다. – PSR

+0

글쎄요. 나는 내 문제를 잘못 설명했을지도 모른다. 예를 들자면 : 텍사스 주를 선택합니다. 그런 다음 도시 컨트롤을 채우기 위해 텍사스의 도시를 만들기 위해 . 문제는 없지만, 다시 주 콤보에 가서 Tenesse를 선택합니다. 그러나 Fenix는 여전히 거기에 있으며, 내가 가서 도시 도시가 선택된 표시된 옵션을 변경하기를 원합니다. –

관련 문제