2017-10-20 28 views
0

我想通过使用jQuery将通过ajax返回的一些用户名加载到下拉菜单中。结果正在成功进入下拉菜单,但所有数据都只进入一个选项标签。我希望数据位于不同的选项标签中。从一个数组中填充项目到不同的选项标签

目前的下拉菜单看起来像这样

1,名称,NAME3,NAME4

但我想为:

名1

名2

NAME3

姓名4

下拉哪里我把结果:

<div class="form-group"> 
    <select name="name" class="form-control" id="employee_select"> 
</select> 
</div> 

的jQuery:

//send value via GET to URL 
    var get_request = $.ajax({ 
     type: 'GET', 
     url: '/users', 
     data: {User:User} 
    }); 

    // handle response 
    get_request.done(function(data){ 

    // Data returned 
    dataReturned = data; 

    // Log data 
    console.log($.type(dataReturned)); // response is string in the form of 
             // Name1 
             // Name2 

    // Convert to an array 
    dataArray = [dataReturned] 

    // Create a new array 
    newArray = []; 

// Populate newArray with items 
for(i=0;i<dataArray.length;i++){ 
    if(typeof(dataArray[i])=='string'){ 
    newArray.push(dataArray[i]) 
} 
} 
//console.log(newArray); 
console.log($.type(newArray)); // an array is returned in the form of ["Name1,Name2,Name3,Name4"] 

// Loop through newArray 
$.each(newArray, function(index, value) { 
$('#employee_select').append("<option>"+ value + "</option>"); 
}) 

谢谢。

+0

你需要修复的结果从用户..份额未来如何从URL – guradio

+0

检查您的返回的字符串不包含\ n \ n通过的结果 - 这时候你把它分解使用\ N - 会创建empy数组元素,然后将其传递给选项。如果您使用console.log(str),那么您将能够在其拆分之前看到返回的数据。 – gavgrif

回答

0

有可能这样做的更优雅的方式,但...

如果你所推的每个结果到一个数组,然后在数组跑了一个循环的每个项目检查,看看每一项都是一个字符串。那个成功的结果,你推入最后一个数组。

for(i=0;i<array.length;i++){ 
    if(typeof(array[i])=='string'){ 
    newArray.push(array[i]) 
} 
} 
+0

感谢您的帮助! 我已更新我的问题。你能帮忙吗? – LinuxUser

相关问题