我试图通过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)。
非常感谢提前。
答案 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;