2012-08-05 2 views
0

레일의 동적 선택 양식 및 활동 관리 작업을 얻을 ..JQuery와 나는 다른에 따라 선택 상자를 업데이트하기 위해 노력하고있어

을 내 활성 관리자 자원, 나는했던 바로 테스트 데이터에 대해 다음 : 나는 내 차 선택 상자가 변경 될 때, JQuery와가 호출한다는 점에서 일하고 위

$('#worksheet_type').change(function() { 

    $.post("/admin/getmanifestcols/", { ws_type: $(this).val() }, function(data) { 
      populateDropdown($("#column_0"), data); 
     }); 
}); 

function populateDropdown(select, data) { 
 select.html(''); 
    alert('hi'); 
    $.each(data, function(id, option) { 
     select.append($('<option></option>').val(option.value).html(option.name)); 
    });       
} 

따라하고 난 얻을 active_admin.js에서

controller do 

    def getcols 
    list = new Hash 
    list = {"OPTION1" => "OPTION1", "OPTION2" => "OPTION2"} 
    list.to_json 
    end 
end 

호출되는 'hi'의 경고 상자. 그러나 선택 상자의 내용을 테스트 OPTION1 및 OPTION2 데이터로 바꾸지는 않습니다.

JSON을 잘못 전달했거나 읽지 않는 것 같습니다.

내가 무엇이 누락 되었습니까?

+0

컨트롤러를 부분 렌더링 한 다음 JS 및 브라우저 메모리가 모든 작업을 수행하는 대신 populateDropdown이 반환 HTML을 추가하는 것이 더 빠를 것입니다. –

+0

또한 populateDropdown 함수 내에서 console.log (data)를 사용하여 브라우저 콘솔에서 반환하는 javascript 객체를 읽습니다. –

답변

0

마치지도를 제대로 반복하지 않는 것처럼 보입니다.

무엇에 대해 :

$.each(data, function(value, name) { 
    select.append($('<option></option>').val(value).html(name)); 
}); 

?

관련 문제