简体   繁体   English

如何使用AJAX成功更新共享点列表上的多个项目?

[英]How can I succesfully update multiple items on a sharepoint list using AJAX?

Apologies as I have already asked a v. similar question. 很抱歉,我已经问过v。类似的问题。

I am trying to update a sp list with the following javascript/ajax. 我正在尝试使用以下javascript / ajax更新sp列表。 It succeeds until it gets to the ajax function, which is where it fails. 它成功,直到到达ajax函数为止,而在这里失败了。 It goes down the error route and in "alert(err.Message)" it posts "undefined" 它沿着错误路径运行,并在“ alert(err.Message)”中发布“未定义”

Any help appreciated. 任何帮助表示赞赏。

  <script type="text/javascript">
    function updateMultipleListItems(){
        var listName="Address Validation";
        //CustomerNumber.val("16");
        var CustomerNumber="CustNum";
        $.ajax({
url: _spPageContextInfo.siteAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items?$select=ID&$filter=Cust_x0020_Number eq 17",

            type: "GET",       
            headers: {
                "Accept": "application/json;odata=verbose",
            },
            success: function (data) {       
                for (var i = 0; i < data.d.results.length; i++) {  
                    var item = data.d.results[i];  
                    alert("1");
                    var itemType = GetItemTypeForListName(listName);
                    alert("2");
                    var ItemId = item.ID;
                    alert("3");
                    var item = {
                    "__metadata": { 
                    "type": 'SP.Data.Address%20ValidationListItem'
                    }, 
                    "assign": "testinput" 
                    };      
                    alert("4");             
                    $.ajax({
                        url:_spPageContextInfo.siteAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items('" + ItemId + "')",
                        type: "POST",
                        contentType: "application/json;odata=verbose",
                        data: JSON.stringify(item),
                        headers: {
                            "Accept": "application/json;odata=verbose",
                            "X-RequestDigest": $("#__REQUESTDIGEST").val(),
                            "X-HTTP-Method": "MERGE",
                            "If-Match": "*"
                        },
                        success: function (data) {
                            console.log('Update Success');
                            alert("Success");

                        },
                    error: function(xhr, status, error) {
                    var err = eval("(" + xhr.responseText + ")");
                    alert(err.Message);
    }
                    });

                } 
            },
            error: function (data) {
                alert("Error");
            }
        });
    }
    function GetItemTypeForListName(name) {
        return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem";
    }  
    </script>

What I'm trying to do: 我正在尝试做的是:

I am trying to update all records in a list where the cust_number (a column in the list) field is 17 so that assign (another column) = "testinput". 我正在尝试更新cust_number(列表中的一列)字段为17的列表中的所有记录,以便assign(另一列)=“ testinput”。

eg: 例如:
Cust Number| 保管号| Assign 分配
17 | 17 | testinput 测试输入
1 | 1 |
17 | 17 | testinput 测试输入
显示错误消息,如建议

So I found out that my metadata type was incorrect. 因此,我发现我的元数据类型不正确。 I went to the following url: 我去了以下网址:

sitename/apps/reserve/_api/lists/getbytitle('Address%20Validation')?$select=ListItemEntityTypeFullName    

From here I found the correct ListItem type. 从这里,我找到了正确的ListItem类型。

Thanks, 谢谢,

Kieran 基兰

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM