Я работаю с этой проблемой месяц, но не могу ее решить. Я могу получить список, используя метод GET rest api. Но я не могу обновить элементы в списке с помощью метода POST в rest api. Для большей ясности наша идея состоит в том, чтобы получить количество кликов, нажатых на ссылку, и оно должно автоматически обновлять счетчик в списке для этого имени ссылки. Итак, предыдущие разработчики создали два списка с уже названными 'a' и 'b'.
- Список 'a' содержит файлы PDF, docx.
- Список 'b' содержит ссылки в формате PDF на список 'a', имя и другие столбцы.
- Я создал другой список 'c', где он содержит имя списка 'b' и счетчик.
Итак, я пытаюсь обновить столбец счетчика в списке 'c'. Но я не могу обновить счетчик из самого кода. Приведенный ниже код - это один из методов, которые я пробовал. Пожалуйста, помогите мне решить эту проблему, когда я не понимаю, даже после того, как попробовал многие методы из блогов sharepoint и репетиторов за последний месяц.
function getItems() {
var resturl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('c')/items";
$.ajax({
url: resturl,
type: "GET",
headers: {
"accept": "application/json;odata=verbose",
},
success: function(data) {
//console.log(data.d.results);
var items = data.d.results;
for (var i = 0; i < items.length; i++) {
console.log("From C List -> Name: " + items[i].Title + ", Count: " + items[i].Count);
}
},
error: function(error) {
alert(JSON.stringify(error));
}
});
}
var prevcount = 0;
function updateItems() {
var resturl = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('c')/items";
prevcount = prevcount + 1;
$.ajax({
url: resturl,
method: "POST",
headers: {
"accept": "application/json;odata=verbose",
"X-RequestDigest": $("#__REQUESTDIGEST").val(),
"content-Type": "application/json;odata=verbose",
"IF-MATCH": "*",
"X-HTTPS-Method": "MERGE"
},
data: "{__metadata:{'type':'SP.Data.cListItem'}, Count: prevcount}",
async: false, success: function (data) {
console.log(data.d.results);
},
error: function (data) {
console.log(data.responseJSON.error);
}
});
}