2011-08-15 12 views
0

私は自動集計によって生成している配列の値を分割しようとしています。jQuery 2つの値を分割する

値の出力は、通りである:

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

は、私はPHPを介してデータベースにこれらを保存することができるように変数として値12 & 11と店舗を抽出します。これは私がこれまでしていない成功にしようとしたものです:私は、彼らが(3)追加することができる量に上限を設定しているとして、私は唯一の3つのカテゴリーがあり

<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> 

事前に感謝します。

+2

あなたは2つの要素しか持っていないが、あなたは3を参照しようとしていることに気がつくことはできません。これは見落としですか? –

+0

こんにちはJeremy、あなたが見ている2つの要素は、私があなたにフォーマットのアイデアを伝えなければならない100以上の要素のうちの短い断片です。 – Ben

答えて

3

jsonのようです。なぜ、それをネイティブなJS構造としてアクセスしないのですか?

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

あなたはネイティブ* JavaScript *構造を意味しますか? – Ryan

+0

Argh。右。編集の回答。 –

+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_decodeを使用するPHPでJSON.parse(json_string、リバイバー)となりJSでのネイティブ関数で文字列をデコードすることができるはずですので、あなたが使用しようとしている文字列が有効なJSONです($ 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; 
関連する問題