2011-12-29 3 views
0

그래서 코드가 목록이 채워지기 전에 드롭 다운 목록에서 값을 선택하려고 할 때 문제가 발생합니다. 기본적으로 PHP에서 드롭 다운 값을 얻기 위해 AJAX 게시물을 수행하는 자바 스크립트 함수를 호출합니다. 그런 다음 목록에서 값을 선택한다고 가정하지만 목록을 채우기 전에이를 수행하므로 값을 찾지 못합니다. 이 문제를 해결하는 방법에 대한 아이디어가 있습니까? 내가 드롭 다운 목록목록이 채워진 후 동적으로 채워진 드롭 다운 목록에서 값 선택

function getProjects(id, proj_select_class) 
{ 
    custID = id.options[id.selectedIndex].value; 

    $.ajax({ 
     type: "POST", 
     url: "index.php/home/projectlist", 
     data: {custID : custID}, 
     dataType: "json", 

     success:function (result){     
      var ddl = $(proj_select_class); 

      ddl.children('option:not(:first)').remove();    
      for (var key in result) { 
       if (result.hasOwnProperty(key)) { 
        ddl.append('<option value=' + key + '>' + result[key] + '</option>');        
       } 
      }       
     } 

    }); 
} 

그리고 heres는 내가 값을 설정 값을 얻을 경우

Heres는 내 코드

이다. AddNew()는 테이블에 새 행을 추가합니다. 이것은 또한 아약스 호출 내부입니다.

for (var row in result) { 
    AddNew();                 

    client_field = document.getElementById('clients'+id); 
    project_field = document.getElementById('projects'+id); 

    client_value = $.trim(result[row].client_id); 
    project_value = $.trim(result[row].project_id);  

    //set client       
    client_field.value = client_value;      

    getProjects(client_field, project_field, client_value); 
    project_field.value = project_value;   
} 

답변

0

사용자 지정 이벤트 바인딩을 사용하여 코드에서 목록의 값을 가져와야하는시기를 알 수 있습니다. 은 "listpopulated"이벤트 때문에 같은

$(document).bind("listpopulated", function(){ /*find value, call AddNew() */ }); 

와 아약스 성공 기능 트리거 :

$(document).trigger("listpopulated"); 

참고 :

http://api.jquery.com/bind/

사용자 정의 이벤트에 바인딩하려면, 당신은 같은 것을 할 것

http://api.jquery.com/trigger/

+0

는이 작업을 가져올 수 없습니다 값 설정 다른 기능입니다. 이 기능은 다른 것들에 의해 사용되고 있었기 때문에 나는 그것에 문제가있었습니다. – user284584

0

아약스이

$(document).ajaxComplete(function(){ set_values(result); }); 

set_values을 수행하여 실행 완료 때까지 대기하여 고정 난 그냥 내 모든 결과를 통해 반복하고 모든 드롭 다운이

관련 문제