2010-03-16 3 views
0

페이지로드시 ajax 호출에서 XML 응답으로 변수를 채우려고하므로 반복적 인 get 요청을하지 않고도 해당 목록을 필터링 할 수 있습니다. 자동 완성). 내가 가지고있는 문제는 잠재적으로 변수 범위 지정과 관련이있는 것 같지만 js/jQuery에 상당히 익숙하므로 매우 확신하지는 않습니다.Sharepoint List 웹 서비스에서 XML 객체 반환 및 저장

다음 코드는 키 업에 아무런 변화가 없으며 경보를 추가하면 keyup에서 leadResults()이 실행 중이고 변수가 XML 응답 객체를 반환하지만 비어있는 것처럼 보임을 알립니다. 이상한 점은 leadResults() 호출을 getResults() 함수로 이동하면 UL에 결과가 올바르게 채워진다는 것입니다.

Im이 벽에 머리를 대고있어, 도와주세요!

var resultsXml; 

$(document).ready(function() { 
    var leadLookupCaml = 
     "<Query> \ 
      <Where> \ 
       <Eq> \ 
        <FieldRef Name=\"Lead_x0020_Status\"/> \ 
        <Value Type=\"Text\">Active</Value> \ 
       </Eq> \ 
      </Where> \ 
     </Query>" 

    $().SPServices({ 
        operation: "GetListItems", 
        webURL: "http://sharepoint/departments/sales", 
        listName: "Leads", 
        CAMLQuery: leadLookupCaml, 
        CAMLRowLimit: 0,      
        completefunc: getResults  
       }); 

}) 

$("#lead_search").keyup(function(e) { 

leadResults(); 

}) 



function getResults(xData, status) { 
resultsXml = xData; 

} 

function leadResults() { 
xData = resultsXml; 
    $("#lead_results li").remove(); 
    $(xData.responseXML).find("z\\:row").each(function() { 

     var selectHtml = 
      "<li>" 
      + "<a href=\"http://sharepoint/departments/sales/Lists/Lead%20Groups/DispForm.aspx?ID=" + $(this).attr("ows_ID") + ">" + $(this).attr("ows_Title")+" : " + $(this).attr("ows_Phone") + "</a>\ 
      </li>"; 
     $("#lead_results").append(selectHtml); 



    }); 
} 

답변

0

내 제출물을 증거로 읽은 후 눈부신 정도였습니다! 아약스 호출은 동 기적으로 만들어야했습니다. async를 false로 설정하면 하루를 절약 할 수 있습니다!

관련 문제