我无法从PHP数组转换为Javascript数组,然后访问该值。我已经尝试过JSON编码和解码。

PHP:

$simpleArray= [];
$childProducts = Mage::getModel('catalog/product_type_configurable')
    ->getUsedProducts(null,$_product);
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);
    //which color id is selected
    var colorSelected = $j("#attribute92 option:selected").val();
    console.log('Value of color selected is ' + colorSelected);
    $j('.details'+data[i].vendor_id).append('<li class="priceBlock">$'+simpleArray[i][colorSelected]+'</li>');
}


编辑:
我已经摆脱了PHP中的simpleArrayJson声明,并更改了JavaScript的第一行。

最佳答案

您没有理由json_decode()尝试输出的值。只需直接回显即可:

var simpleArray = <?= $simpleArrayJson ?>;


这将输出一个javascript对象文字。

10-01 07:27