使用来自xml链接的动态数据填充选择选项标签

时间:2019-07-10 21:32:23

标签: javascript json dynamic drop-down-menu html-select

我需要用从xml链接获取的动态数据填充选择选项标签。

您好,我正在与sharepoint合作,我需要解决我的问题。 我有一个空的选择标签,我需要用xml链接中的动态数据填充它。 https://scontent.ftun3-1.fna.fbcdn.net/v/t1.15752-9/66477621_1241321552715420_782504330790961152_n.png?_nc_cat=103&_nc_oc=AQlt1rE9uaqZ1xQ5hiMymOPlFsedDuxcpBPMP9C_RTgYJ6s8P5ekStaUIaC5MTiZyOY&_nc_ht=scontent.ftun3-1.fna&oh=bbda50d7782545a433025406a28b2396&oe=5DBECD7B

图片中的数据是静态键入的,而xml链接中的列的名称为<d:ProjectOwnerName>,但我希望它是动态的。 从这段代码开始,我该怎么做?

$.ajax({url: _spPageContextInfo.siteAbsoluteUrl + "/_api/ProjectData/[en-US]/Projects",                           
                                        method: "GET",
                                        dataType: "json",
                                        headers: {Accept: "application/json;odata=verbose"},       
                                        success: function(data) {     
                                        var dataResults = data.d.results;

               var listItemInfo ="";
                $.each(dataResults, function(key, value) 
                {

这是html部分:

<select style="color:black; font-weight:bold;" id="mylist" onchange="myFunction()">
    <option></option>
    </select>

1 个答案:

答案 0 :(得分:0)

如果您的数据为xml,请使用dataType:'xml'。可能是这样的。

$.ajax({url: _spPageContextInfo.siteAbsoluteUrl + "/_api/ProjectData/[en-US]/Projects",                           
    method: "GET",
    dataType: "xml",//or json if xml is wrapped in json
    //headers: {Accept: "text/xml"},//make sure you need this       
    success: function(data) { 
        //check which is your desired XML
        console.log(data);
        console.log(data.d);
        console.log(data.d.results);

        //suppose it is data.d.results
        var dataResults = data.d.results;
        var list = $('#mylist');
        $(dataResults).find('d\\:ProjectOwnerName')//this is how access namespaced property
          .each(function(){
            list.append($('<option />').text(this.innerText));
          });//each
       }//success
});//$.ajax