我正在尝试搜索一个名为mollyList的sharepoint列表。它的列名是食物,卡路里,体重...ect。我修改了下面的示例代码,但一直收到错误: POST /_vti_bin/Lists.asmx 500 (Internal Server Error)
我不知道问题出在哪里?有人能检查一下我的代码吗?
<!-- begin snippet: js hide: false --><body>
<table><tbody><tr><td align="right">Calories</td>
<td align="left"><input id="firstName" type="text"/></td></tr>
<tr><td align="right">weight:</td>
<td align="left"><input id="wt" type="text"/></td></tr>
<tr><td align="right">weight:</td>
<td align="left"><input id="wt2" type="text"/></td></tr></tbody></table>
<p><input id="sb" type="button" value="Search"/> </p>
<ul id="searchResults"></ul>
</body>
$(document).ready(function () {
$("#sb").click(function(){
alert("this");
$("#searchResults").empty();
var query = "";
var key = "";
//Build Query from input
if($("#firstname").val()){
key = $("#firstname").val();
query = "<Query><Where><Or><Contains><FieldRef Name='Food'/><Value Type='Text'>"+ key +"</Value></Contains><Contains><FieldRef Name='calories'/><Value Type='Text'>"+ key +"</Value></Contains></Or></Where></Query>";
}
// Pass query to Function
if(query)
sendQuery(query);
else
$("#searchResults").append("Please enter atleast one value");
//If no results found
if (!$("#searchResults").html())
{
$("#searchResults").append("No Results Found");
}
});
});
function sendQuery(spQuery)
{
var thisSite = $().SPServices.SPGetCurrentSite();
//function to get all the lists
$().SPServices({
operation: "GetListItems",
async:false,
webURL: $(this).attr("/Lists/mollyList/AllItems.aspx"),
listName: $(this).attr("mollyList"),
CAMLQuery: spQuery,
CAMLRowLimit: 100,
completefunc: function(xData, Status) {
}
});
}<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<body>
<table><tbody><tr><td align="right">Look Up:</td>
<td align="left"><input id="firstname" type="text"/></td></tr>
</tbody></table>
<p><input id="sb" type="button" value="Search"/> </p>
<ul id="searchResults"></ul>
Generate SPQuery and pass to the function:
</body>发布于 2015-07-24 06:50:30
您的sendQuery()函数在我看来是错误的,特别是这两行:
webURL: $(this).attr("/Lists/mollyList/AllItems.aspx"),
listName: $(this).attr("mollyList"),目前还不清楚listName: $(this).attr("mollyList"),为您实现了什么目标。如果您已经知道列表名称是"mollyList“,那么正确的代码应该是listName: "mollyList",
如果您试图访问不同站点上的列表,则webURL应该是列表所在站点的URL,大概采用以下语法:webUrl: "http://server.com/site/web",
GetListItems操作的documentation建议listName应该是列表的显示名称,而如果要在列表所在的站点上执行代码,则webURL是可选的。
另请注意,如果您使用的是SharePoint 2010或更高版本,您还可以使用内置的JavaScript对象模型。您可以在此处找到微软关于JavaScript客户端对象模型的文档:https://msdn.microsoft.com/en-us/library/hh185015(v=office.14).aspx
https://stackoverflow.com/questions/31597356
复制相似问题