2017-05-17 6 views
0

Ich versuche, Drop-Down durch globale Variable zu binden (Name ist der Array-Name), die fein unten bindet:Bindungsdaten Dropdown

Click here - dropdown is populating fine

var name = ['us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya', 'us', 'china', 'kenya']; 

Aber wenn ich versuche, das Array zu füllen (ddList ist der Array-Name) in der Erfolgs-Call-Back-Funktion (fnsuccesscallback), Drop-Down ist nicht auffüllen.

Click here - drop-down is not pupulating

function fnsuccesscallback(data) {   
      $.each(data.d, function() {    
       ddList.push(this['Value']);    
      });  
      ddList.push('a'); 
      ddList.push('b'); 
      ddList.push('c'); 
      ddList.push('d'); 

     } 

Aber ich möchte nur das Array in Call-Back-Funktion füllen.

Könnten Sie bitte lassen Sie mich wissen, wie das zu beheben?

aktualisiert:

Drodown formating screwed up

Erste Daten aber Formatierung von Drop-Down-verkorkst ist

+0

Mögliche Duplikat [? Wie kann ich die Antwort von einem asynchronen Aufruf zurückkehren] (http://stackoverflow.com/questions/14220321/how-do-i-return-the- Antwort-von-einem-asynchronen Anruf) – James

+0

Die Ajax-Erfolgs- (oder auch Fehler-) Rückrufe werden ausgeführt, nachdem Ihr array.map-Aufruf wegen Async aufgerufen wurde. Sie sollten die Karte innerhalb der Erfolgsfunktion ausführen. – James

+0

Wenn wir den Erfolg erfolgreich zuordnen, wird Droddown die Daten nicht richtig binden. Was ist die alternative Lösung? – SmartestVEGA

Antwort

0

Wie ich in den Kommentaren erwähnt, ist Ihr Ansatz funktioniert nicht, weil die Ajax-Erfolg Funktion, nachdem Sie gut ausführt Versuchen Sie, das Ergebnis an die Auswahl anzuhängen.

Sie sollten die neuen Optionen während des Rückrufs anhängen. Geben Sie diesem einen Versuch:

function fnsuccesscallback(data) { 
    data.map(function (el) { 
     $('.multiselect').append("<option value='" + el.Value + "'>" + el.Value + "</option>"); 
    }); 
} 
+0

Kein Glück ... ist das was du versuchst zu tun? https://jsfiddle.net/rLwep5yc/3/ – SmartestVEGA

+0

Nun, es wird nicht auf jsfiddle arbeiten, die Ajax-URL ist "Test.aspx/GetAllCultures", und der Fnerrorcallback wird statt Fnsuccesscallback getroffen. Versuchen Sie es auf Ihrem Server, wo diese URL gültig ist. Wenn es weiterhin fehlschlägt, stellen Sie sicher, dass es die erwartete Serverantwort empfängt. – James

+0

Ich versuchte es in Visual Studio, aber nicht funktioniert die gleichen Ergebnisse wie unten https://jsfiddle.net/rLwep5yc/6/ – SmartestVEGA