페이지로드시 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);
});
}