2016-08-05 8 views
2

Ich erhalte die json-Format wieWie json Ergebnis auf eine ausgewählte Option Wert

{ 
    "0": ["AL", "Alabama"], 
    "9": ["FL", "Florida"] 
} 

Ich möchte diesen Wert in Auswahlfeld anhängen, Optionswert lik

<option value="AL">Alabama</option> 
<option value="FL">Florida</option>. 

Für die richtig anhängen Ich habe den folgenden Code ausprobiert. Es ist das Anhängen der alle Werte

success: function(json) { 
    jQuery('#stateId').html(''); 
    jQuery.each(json, function(i, value) { 
     jQuery('#stateId').append(jQuery('<option>').text(value).attr('value', value)); 
    }); 
} 
+1

'Wert durchgeführt werden [0]' für den Wert und 'Wert [1]' für den Text – billyonecan

+0

Es geht um mit dynamischem/named Indizes json Umgang .. – Sami

Antwort

0

Try this:

success: function(json) { 
    jQuery('#stateId').html(''); 
    jQuery.each(json, function(i, value) { 
     jQuery('#stateId').append(jQuery('<option>').text(value).attr('value', value[i])); 
    }); 
} 
1

Sie benötigen etwas mehr über json wissen. Ihr Json-Objekt ist kein Array. Es enthält mehrere benannte (als 0, 1) Objekte. Dieser Objekte jeweils ein Array

So Sie eine Schleife über json haben jeweils benannten Index zu erhalten, dann Objekt an diesem Index erhalten Sie jsonObject[index] und nicht jsonObject.index

Nun hat jeder von Objekten zu verwenden ist ein Array aus zwei Elementen und Sie können sie als Text und Wert wie

for(var index in originalJson){ 
    var val = originalJson[index]; //it is same like originalJson.prop but  
    jQuery('#stateId').append('<option />').text(val[0]).attr('value',val[1]); 
} 

Working Plunker

1
var json = { 
    "0": ["AL", "Alabama"], 
    "9": ["FL", "Florida"] 
}; 

    jQuery('#stateId').html(''); 
    jQuery.each(json, function(i, value) { 

    jQuery('#stateId').append(jQuery('<option>').text(value[1]).attr('value', value[0])); 
    }); 

se verwenden e dem fiddle

0

kann auch wie dieser

d = { 
    "0": ["AL", "Alabama"], 
    "9": ["FL", "Florida"] 
} 
var str = ""; 
$.each(d, function(i,obj){ 
     str += "<option value='"+obj[0]+"'>"+obj[1]+"</option>";  
}) 
$("#selDropDown").html(str)