传递变量以获取Ajax结果项

时间:2015-05-18 18:20:34

标签: javascript jquery ajax sharepoint

我正在尝试传递一个变量来访问AJAX调用返回的特定结果片段。我在页面上获取每个ID,然后尝试从AJAX调用中访问该特定数据,但是我不知道如何将变量传递给数据对象以获取该项。例如,如果结果包含标题文本,如果我要硬编码,我会使用

    var Title = data.d.Title

我想要做的是动态更改“标题部分”。以下是我到目前为止:

   function LoadItem() {



//Call REST API to load list item, pass the Item id to the service
var requestUri = "../_api/web/lists/getbytitle('" + ListType + "')/items("+GlobalFormID+")";
var requestHeaders = {
    "accept": "application/json;odata=verbose"
};
$.ajax({
    url: requestUri,
    contentType: "application/json;odata=verbose",
    headers: requestHeaders,
    success: onSuccess,
    error: onError
});

//set each data value from the response to a variable and then set each input field to their respective items
function onSuccess(data, request) {




for (var i = 0; i < formIDs.length; i++){
var x = formIDs[i]
 //Here I should display the value for that item from the data object
console.log(data.d.[x])

}

}

function onError(error) {
      //alert("error");
  }


}

我知道我不能做data.d. [变量名]显然是因为它不是正确的语法,但我不知道其他任何方式。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:0)

访问属性的正确语法是:

object.property
object["property"]

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors

答案 1 :(得分:0)

自端点

http://site url/_api/web/lists/GetByTitle('<list title>')/items(<item id>)

返回列表项资源,您可以像这样访问Title属性:

function onSuccess(data) {
   console.log(data.d.Title);
}

示例

function loadListItem(webUrl, listTitle,itemId) {
   var endpointUrl = webUrl +  "/_api/web/lists/getbytitle('" + listTitle + "')/items(" + itemId + ")";
   return $.ajax({
       url: endpointUrl,
       contentType: "application/json;odata=verbose",
       headers: {
           "accept": "application/json;odata=verbose"
       }
   });
}



loadListItem(_spPageContextInfo.webAbsoluteUrl,'Tasks',1)
.done(function(data){
   console.log(data.d.Title);
})
.fail(
function(error){
    console.log(error);
});

答案 2 :(得分:-1)

感谢大家的意见,我明白了。在成功进行AJAX调用后,我只需要执行以下操作。我使用前面定义的数组formID,并将该数组项作为键传递。

function onSuccess(data,request){

    for (var i = 0; i < formIDs.length; i++){
var x = formIDs[i]
$("#"+x).val(data.d[x]);
//console.log(data.d[x]);
}

 }