2017-10-20 1 views
0

Ich versuche, einige Benutzernamen über Ajax in ein Dropdown-Menü mit jQuery zurückgegeben. Die Ergebnisse werden erfolgreich in das Dropdown-Menü übernommen, aber alle Daten werden in nur einem Options-Tag angezeigt. Ich möchte, dass sich die Daten in verschiedenen Options-Tags befinden.Füllen Sie Elemente aus einem Array in verschiedene Optionen tag

Derzeit ist das Drop-Down-Menü sieht wie folgt aus

Name1, Name2, Name3, Name4

Aber ich will als:

Name1

Name2

Name3

Name4

Dropdown wo ich die Ergebnisse bin setzen:

<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>"); 
}) 

Danke.

+0

müssen Sie das Ergebnis beheben vom Benutzer kommen .. Anteil, wie Sie das Ergebnis aus der URL – guradio

+0

überprüfen passieren, dass Ihre zurückgegebene Zeichenfolge enthält keine \ n \ n - die, wenn Sie es n mit \ geteilt - wird Erstellen Sie Empy-Array-Elemente, die dann an die Optionen übergeben werden. Wenn Sie console.log (str) haben, können Sie die zurückgegebenen Daten vor der Aufteilung sehen. – gavgrif

Antwort

0

Es gibt wahrscheinlich eine elegantere Art und Weise, dies zu tun, aber ...

Was passiert, wenn Sie jedes Ergebnis in ein Array geschoben und liefen dann eine for-Schleife durch jedes Element in der Matrix zu sehen, zu überprüfen, ob jedes Element ein String . Die erfolgreichen Ergebnisse davon, drängen Sie in eine abschließende Reihe.

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

Danke für Ihre Hilfe bis jetzt! Ich habe meine Frage aktualisiert. Können Sie bitte helfen? – LinuxUser

Verwandte Themen