0

json_encode を使用して JavaScript 変数に割り当てた php 配列があります。PHP配列は連想ではなく数値です。

例: simpleArray[5][7]=1.50。配列がインデックス値に基づいて json_encoded された後、1.50 にアクセスできるようにする必要があります。

PHP:

$simpleArray= [];   

foreach($childProducts as $child) { //cycle through simple products to find applicable
    $simpleArray[$child->getVendor()][$child->getColor()] = $child->getPrice();
    var_dump ($simpleArray);
}

Javascript:

var simpleArray = <?=json_encode($simpleArray)?>;
//..lots of unrelated code
for(var i=0; i < IDs.length; i++)
{   
    console.log(simpleArray);//see the picture of me below
    var colorSelected = $j("#attribute92 option:selected").val(); //integer value

    $j('.details'+data[i].vendor_id).append('<li class="priceBlock">$'+simpleArray[i][colorSelected]+'</li>');
}

Console.log(単純配列):

ここに画像の説明を入力

4

1 に答える 1

0

ここでは、オブジェクトに存在しない値にアクセスしようとしている可能性があります。

simpleArray[i][colorSelected]

for ループの定義に基づいて、i表示されているオブジェクトに存在しない 0、1、2 の値を持つことができます (キー: 3、4、5 にプロパティがあります)。また、 for ループは、オブジェクト内のアイテムの数とはまったく関係がありませんが、これが意図されているかどうかはわかりません。

また、おそらく定義されている行を変更したい文字列を返すcolorSelected呼び出しから値を導出します。val()

var colorSelected = parseInt($j("#attribute92 option:selected").val());

これにより、整数値になります。

于 2013-05-23T20:29:59.683 に答える