我有一個列表中查找另一個表來獲取該數據值。我可以直接查詢表格,並返回我想要的數據。我有另一個表使用上一個表作爲其中一個字段的選擇。我查詢了使用查找表的表中的所有字段,並且與查找對應的字段是由分號和散列符號分隔的查找表的兩個數據字段。我一直試圖格式化一個CAML查詢,以根據該表中的字段過濾使用查找表的數據,並從中獲取另一個字段。對不起,這真的很難解釋,但也許在看到我的代碼後,你會看到我想要得到的。獲取SharePoint數據查詢
如果我做的查找表這樣的查詢:
<body>
<script type="text/javascript" src="jquery-1.7.2.min.js"></script>
<script type="text/javascript" src="jquery.SPServices-0.7.1a.js"></script>
var ViewFields = "<ViewFields>" +
"<FieldRef Name='Title' />" +
"<FieldRef Name='Column_x0020_Number' Type='Number' />" +
"</ViewFields>";
$(document).ready(function() {
$().SPServices({
operation: "GetListItems",
async: false,
listName: "Categories",
CAMLViewFields: ViewFields,
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function() {
var categoryHtml = "<td>" + $(this).attr("ows_Title") + "</td>";
var columnNumHtml = "<td>" + Math.round($(this).attr("ows_Column_x0020_Number")) + "</td>";
var addRow = "<tr>" + categoryHtml + columnHtml + "</tr>";
$("#Categories").append(addRow);
});
}
});
});
</script>
<table border="1" id="Categories" />
</body>
我得到的回報,如:
CAT1 1 CAT2 2 ....
所以,它的工作。這是從中查找的表格。
接下來我們的代碼,試圖讓數據形成的問題表:
var ViewFields = "<ViewFields>" +
"<FieldRef Name='Title' />" +
"<FieldRef Name='Category_x0020_Name' />" +
"<FieldRef Name='Amount' Type='Number' />" +
"<FieldRef Name='Question' />" +
"<FieldRef Name='Answer' />" +
"</ViewFields>";
$().SPServices({
operation: "GetListItems",
async: false,
listName: "Categories",
CAMLViewFields: ViewFields,
completefunc: function (xData, Status) {
$(xData.responseXML).SPFilterNode("z:row").each(function() {
var titleHtml = "<td>" + $(this).attr("ows_Title") + "</td>";
var categoryNameHtml = "<td>" + $(this).attr("ows_Category_x0020_Name")) + "</td>";
var nameHtmlSplitString = categoryNameHtml.split(";#");
var categoryNumString = "<td>" + nameHtmlSplitString[0] + "</td>";
var categoryNameString = "<td>" + nameHtmlSplitString[1] + "</td>";
var amount = "<td>" + Math.round($(this).attr("ows_Amount)) + "</td>";
var question = "<td>" + $(this).attr("ows_Question) + "</td>";
var categoryNumString = "<td>" + $(this).attr("ows_Answer) + "</td>";
var addRow = "<tr>" + titleHtml + categoryNameHtml + categoryNameString + categoryNumString + amountHtml + questionHtml + answerHtml + "</tr>";
$("#Questions").append(addRow);
});
}
});
});
</script>
<table border="1" id="Questions" />
這回來相當細跟:
CAT1問題1 | 1;#CAT1 | 1 | CAT1 | 100 |(問題1.1)|(回答1.1)
CAT1問題2 | 1;#CAT1 | 1 | CAT1 | 200 |(問題1.2)|(回答1.2)
CAT1問題3 | 1;# Cat1 | 1 | Cat1 | 300 |(問題1.3)|(答案1.3)
CAT1問題4 | 1;#CAT1 | 1 | CAT1 | 400 |(問題1.4)|(回答1.4)
CAT1問題5 | 1;#CAT1 | 1 | CAT1 | 500 |(問題1.5 )|(回答1.5)
CAT2問題1 | 2;#CAT2 | 2 | CAT2 | 100 |(問題2.1)|(回答2.1)
CAT2問題2 | 2;#CAT2 | 2 | CAT2 |問題2.2 |(答案2.2)
Cat2問題3 | 2;#Cat2 | 2 | Cat2 | 300 |(問題2.3)|(答案2.3)
Cat2 Question 4 | 2;#Cat2 | 2 | Cat2 | 400 |(question 2.4)|(answer 2.4)
Cat2問題5 | 2;#Cat2 | 2 | Cat2 | 500 |(question 2.5)| (回答2.5)
的Cat3問題1 | 3;#的Cat3 | 3 |的Cat3 | 100 |(問題3.1)|(回答3.1)
的Cat3問題2 | 3;#的Cat3 | 3 |的Cat3 | 200 |(3.2的問題)|(回答3.2)
......
這樣去細差不多,除了 「1;#CAT1」 的回報。我可以明顯地解析它們罰款,但現在,當我嘗試編寫一個查詢:
var Query = "<Query>" +
" <Where>" +
" <Eq>" +
" <FieldRef Name='Category_x0020_Name' />" +
" <Value Type='Text'>" +
" 2;#Cat2" +
" </Value>" +
" </Eq>" +
" </Where>" +
"</Query>";
,我運用它在SPServices
...
listName: "Categories",
CAMLViewFields: ViewFields,
CAMLQuery: Query,
completefunc: function (xData, Status) {
....
我什麼也沒得到。
任何建議如何處理下拉數據?
有沒有人在那裏? – trout0525 2014-09-26 12:09:40