2012-06-16 28 views
1

所以我有一個$.post,返回一些json_encode($array);手柄並轉動JSON數據轉換成選項選擇器與jQuery

$array是一維的,它包含編號:因此,現在2,4,6

data正在持有json數據,我如何循環並向我的#time選擇器做出選項? value=""和顯示文本應該是數組中的數字。

+0

請參閱此** [jQuery插件問題 - 使用JSON數據填充選項](http://stackoverflow.com/a/2831432/500725)** –

回答

1

類似的東西應該工作:

$.each(data, function(i, val) { 
    $("<option />").text(val).val(val).appendTo("#time"); 
}​);​ 

DEMO:http://jsfiddle.net/tmSqR/


更新。您的數據未從字符串格式解碼爲JSON。在迭代之前,將dataType屬性添加到$.post或使用data = JSON.parse(data)

DEMO:http://jsfiddle.net/tmSqR/1/

+0

好的答案!雖然我得到了很多錯誤的選項[,2 4] [我只想要json的值,它需要整個包含語法 – Karem

+0

@Karem我實際上並不明白你的意思。 – VisioN

+0

好吧,我試過這個新的但仍然沒有。當我做警報(數據),我得到[2,4],如果我輸出所有val()我得到:] 4,2 [ – Karem

1

也許你想這樣做:

var s = $('select#time'); 
s.empty(); 
$.each(data, function(key, value){ 
    s.append($("<option />").text(value).val(key); 
    //or 
    s.append($("<option value="key">value</option>"); 
}); 
+0

對不起,我犯了一個錯誤,實際上我需要編輯我的答案。 –

1

實際將數據從PHP返回由json_encode($array)是在JavaScript字符串,需要先轉換爲對象,以循環通過它在迴路開始前使用$.parseJSON

var obj=$.parseJSON(data); 
$.each(obj, function(k, v) { 
    $("<option />").text(v).val(v).appendTo("#time"); 
});​ 

DEMO.