显示所选选项的数组值

时间:2019-08-12 14:25:13

标签: javascript php json

我正在尝试从包含id和sku号的数组中回显一个值。 我需要回显所选div的sku号。

下面是一个选定的div,其中显示了data-option-type-id

<div class="mageworx-swatch-option text selected" data-option-id="13111" data-option-type-id="166748" data-option-label="3/4" data-option-price="145" style=" max-width: 90px;">3/4"</div>

这是我当前的代码,该代码从php数组中获取ID和sku并发送至javascript:

<?php
$_product = $block->getProduct();
foreach ($_product->getOptions() as $o) {
    foreach ($o->getValues() as $value) {
        $result[]=array(
        "itemoption_id" => $value["option_type_id"],
        "itemsku" => $value["sku"]
        );

    }
}
echo json_encode($result);
   ?>
<script type="text/javascript">
// pass PHP variable declared above to JavaScript variable
var result = <?php echo json_encode($result) ?>;
var json = JSON.stringify(result);
document.write(json);
</script>

我的想法现在碰到了墙(对此很陌生),任何帮助将不胜感激。

我正在考虑使用javascript if命令查看是否已选择div并匹配该data-option-type-id以查找和显示sku。

我想在那里需要一些ajax吗?

有人可以向我指出正确的方向或提供任何建议吗?

非常感谢

2 个答案:

答案 0 :(得分:1)

我建议使用项ID作为键,使Sub sdfsdf() Application.DisplayAlerts = False ThisWorkbook.BuiltinDocumentProperties("Creation Date") = "8-Aug-18 11:25:30PM" ThisWorkbook.BuiltinDocumentProperties("Last Save Time") = "16-Jan-19 09:45:21PM" ThisWorkbook.BuiltinDocumentProperties("Last Print Date") = "21-Jun-19 10:23:31PM" ThisWorkbook.Save End Sub 成为JavaScript对象而不是数组。

result

您可以轻松查找SKU

<?php
$_product = $block->getProduct();
foreach ($_product->getOptions() as $o) {
    foreach ($o->getValues() as $value) {
        $result[$value["option_type_id"]]=value["sku"];
    }
}
?>
<script type="text/javascript">
// pass PHP variable declared above to JavaScript variable
var sku_data = <?php echo json_encode($result) ?>;
</script>

答案 1 :(得分:0)

我不知道您的HTML结构,但可以肯定的是,如果您要使用JSON对象,则需要使用

 var json = JSON.parse(result);

代替

 var json = JSON.stringify(result);

parse将字符串转换为JSON,而stringify执行相反的操作