2011-08-15 41 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;