jQuery拆分2个值

时间:2011-08-15 19:06:18

标签: php jquery split

我试图通过autosuggest分割我正在生成的数组的值。

值的输出如下:

[
 {"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)。

非常感谢提前。

6 个答案:

答案 0 :(得分:3)

看起来像是json。为什么不将它作为本机JS结构访问?

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

答案 1 :(得分: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>

答案 2 :(得分: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;
});

答案 3 :(得分:0)

你试图使用的字符串是有效的json,所以你应该只能用js中的本机函数解码字符串,这将是php中的JSON.parse(json_string,reviver)你将使用json_decode($ json)

解码字符串将为您提供一个易于使用的对象/数组。

(这是你想要的吗?)

答案 4 :(得分: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");

答案 5 :(得分: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;