office365 sharepoint2013 Jquery 向list插入資料
阿新 • • 發佈:2019-02-19
做了三天時間得到同事的幫助才搞定,廢話不說直接上程式碼。
2014年5月18日更新:增加了一些注意事項更新程式碼。突然發現我開始對jquery操作SP著迷了,很簡單實用,節省資源。
1,寫一個方法單擊事件更新,jquery的上下文, 我就省略了。
$("#ButStart").click(function () {
GetList_N();
});
2,方法函式,所有專案的域名用xxxx代替專案站點用xxx代替
//寫一個新的方法直接獲得List function GetList_N() { var siteUrl =https://xxxx.sharepoint.com/xxx; var projectList="listName"; getListItems_dct(siteUrl,projectList,failed); }
注意 這裡的listName必須注意,是list顯示名稱而不是list的遠端名稱。如果你是剛學,為了避免錯誤請不要修改list名稱,當然這樣是不推薦的,還是記住我的方法比較好。
3,下面的程式碼寫一個條件,如果符合條件則寫入list中,此處的技術用的遍歷陣列的簡單方法。
至於用法 可以查一下jquery的幫助檔案$.each(results,function(result,val),這裡先獲得源資料,把源資料寫入到陣列,然後傳遞。
//為了獲取多個檔案此處重新寫一個GetListItems方法 //為獲取對比方法,此處讀取2個list進行對比,如成功則把結果寫入到新的list裡。 function getListItems_dct(url, listname) { $.ajax({ url: url + "/_api/web/lists/getbytitle('" + listname + "')/items", method: "GET", headers: { "Accept": "application/json; odata=verbose" }, success: function (data) { //complete(data); // Returns JSON collection of the results var results = data.d.results; //Source_dct(results); $.each(results,function(result,val){ var Mystr=val.Title+","+val.Approver+","+val.ApprRequired+","+val.CurrentStage; // alert(Mystr); Source_dct(Mystr); }); }, error: function (data) { failure(data); } }); }
4,找到對照陣列遍歷 有相同的則寫入物件list,以下方法是寫入。不管是新手或老手請注意除錯,這是必須的。推薦使用chrome 很好用
//**************************************************************Insert List Code Start**************************************************************** function executeFeedback(url, type, verb, data, success, error) { $.ajax({ url: "https://xxxx.sharepoint.com/xxx/_api/web/lists/GetByTitle('AICDocApprovalWFList')/" + url, type: type, data: data, headers: { "Accept": "application/json;odata=verbose", "Content-Type": "application/json;odata=verbose", "X-RequestDigest": $("#__REQUESTDIGEST").val(), "IF-MATCH": "*", "X-HTTP-Method": verb }, cache: false, success: success, error: error }); } function retriveListItem(condition) { executeGlossary( "items?$filter=startswith(Title,'" + condition + "')&$select=Title,Description", "GET", "GET", null, function (data, status, xhr) { $("#result").empty(); for (var i = 0; i < data.d.results.length; i++) { var item = data.d.results[i]; $("#result").append("<font style='TEXT-DECORATION: underline'><b>" + item.Title + "</b></font>" + "--" + item.Description + "<br/>"); } }, function (xhr, status, error) { $("#result").empty().text(error); }); } function createListItem(ArrayVal) { var InTitle =ArrayVal.split(",")[0]; var GetApprover= ArrayVal.split(",")[1]; var GetApprRe= ArrayVal.split(",")[2]; var InTG = ArrayVal.split(",")[3]; executeFeedback( "items", "POST", "POST", JSON.stringify( { __metadata: { type: "SP.Data.AICDocApprovalListListItem" }, //ListItem前面是列表名稱,這是固定格式。這裡特別注意的是,這裡list名稱是url原始名稱 Title:''+InTitle, Approver:''+GetApprover, DocumentLink:''+GetApprRe, ProjectID:'34343', CurrentStatus:''+InTG }), function (data, status, xhr) { alert( InTitle+' inserted successful'); }, function (xhr, status, error) { $("#result").empty().text(error); }); } //**************************************************************Insert list Code End*******************************************************************
<html>
<head>
<TITLE>FeedBack</TITLE>
<META content="text/html; charset=utf-8" http-equiv=Content-Type>
<SCRIPT type=text/javascript src=" /jquery-1.9.1.min.js"></SCRIPT>
<SCRIPT type=text/javascript src=" /JS/knockout-3.1.0.js"></SCRIPT>
<SCRIPT type=text/javascript src=" /JS/json2.js"></SCRIPT>
</head>
<body>
<script type="text/javascript">
function executeFeedback(url, type, verb, data, success, error) {
$.ajax({
url: "https://xxxx.sharepoint.com/xxxx/_api/web/lists/GetByTitle('ListNAME')/" + url,
type: type,
data: data,
headers: {
"Accept": "application/json;odata=verbose",
"Content-Type": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"IF-MATCH": "*",
"X-HTTP-Method": verb
},
cache: false,
success: success,
error: error
});
}
function retriveListItem(condition) {
executeGlossary(
"items?$filter=startswith(Title,'" + condition + "')&$select=Title,Description",
"GET",
"GET",
null,
function (data, status, xhr) {
$("#result").empty();
for (var i = 0; i < data.d.results.length; i++) {
var item = data.d.results[i];
$("#result").append("<font style='TEXT-DECORATION: underline'><b>" + item.Title + "</b></font>" + "--" + item.Description + "<br/>");
}
},
function (xhr, status, error) {
$("#result").empty().text(error);
});
}
function createListItem() {
executeFeedback(
"items",
"POST",
"POST",
JSON.stringify(
{
__metadata: { type: "SP.Data.'ListNAME'ListItem" },
Title:'123',
CurrentStage:'123456789'
}),
function (data, status, xhr) {
alert('successful');
},
function (xhr, status, error) {
$("#result").empty().text(error);
});
}
</script>
<div id="result" style="width:100%; margin-top:15px; margin-left:25px">
<input type="button" id="feedbackbtn" value="Save" onclick="createListItem()"/>
</div>
</body>
</html>
有感興趣的歡迎加入 QQ群:212099235