2011-08-15 91 views
0

我想分裂我通過自動建議產生的數組的值。jQuery分裂的2值

的值的輸出是這樣:

[ 
{"value":"12","name":"Solid Fuel Fire Installers"}, 
{"value":"11","name":"Oil Engineers & Boiler Fitters"} 
] 

欲提取值12 & 11和存儲爲變量,所以我可以通過PHP這些保存到數據庫。這是我迄今並沒有成功嘗試:

<script type="text/javascript"> 
var arr = $(".as-values").val().split(","); 
    var category_1=arr[0]; 
    var category_2=arr[1]; 
    var category_3=arr[2]; 
</script> 

我只有3個類別,因爲我設置了限制他們可以添加(3)量。

非常感謝提前。

+2

我不禁注意到你只有2個元素,但你試圖引用3.這是一個疏忽? –

+0

嗨,傑里米,你看到的2個元素只是100多個元素中的一個簡短片段,我必須給你一個格式的概念。 – Ben

回答

3

這看起來像json。爲什麼不把它作爲一個原生的JS結構訪問呢?

var json = $(".as-values").val(); 
data = jquery.parseJSON(json) 
alert(data[0].name); // solid fuel fire installers 
+0

你的意思是native * JavaScript *結構嗎? – Ryan

+0

啊。對。編輯答案。 –

+0

那會打印出名字不是嗎?我怎麼能打印出與該名稱相關的相應ID並將其存儲在變量中? – Ben

0

該數組是一個對象的數組,而不是字符串,所以爲什麼不把它們當作對象呢?

<script type="text/javascript"> 
    var arr = $(".as-values").val(); 
    var category_1=arr[0].value; 
    var category_2=arr[1].value; 
    var category_3=arr[2].value; 
</script> 
0

不知道你在做什麼。這聽起來像嗎?

var values = '[{"value":"12","name":"Solid Fuel Fire Installers"},{"value":"11","name":"Oil Engineers & Boiler Fitters"}]'; 

values = $.parseJSON(values); 

var submitValues = {}; 

$.each(values, callback(i, element){ 
    submitValues[element.value] = element.name; 
}); 
0

你正在嘗試使用的字符串是有效的JSON,所以你應該能夠只是在解碼與JS固有函數的字符串,這將是JSON.parse(json_string,齊磊)在PHP中您可以使用json_decode ($ JSON)。

解碼字符串會給你一個對象/數組,你應該可以很容易地處理。

(這是你想要的嗎?)

0

是你的問題是如何通過其屬性值來訪問一個元素?你可以這樣做:

var elements = [ 
    {"value":"12","name":"Solid Fuel Fire Installers"}, 
    {"value":"11","name":"Oil Engineers & Boiler Fitters"} 
]; // Retrieve however you want 
var element; 

for(var i = 0; element = elements[i]; i++) { 
    if(element.value == 11) { 
     // It's number 11, for example 
    } 
} 

當然,你或許應該把在一個函數:

function findByProperty(elements, property, value) { 
    var i, element; 

    for(i = 0; element = elements[i]; i++) { 
     if(element[property] === value) return element; 
    } 

    return null; 
} 

// ... define 'elements' as before 

var numberEleven = findByProperty(elements, 'value', "11"); 
0

既然你已經擁有你不需要解析它一個有效的JSON數組。試試這個。

var arr = [ 
{"value":"12","name":"Solid Fuel Fire Installers"}, 
{"value":"11","name":"Oil Engineers & Boiler Fitters"} 
] 
var category_1=arr[0].name; 
var category_2=arr[1].name;