将json_encode()与foreach循环一起使用

时间:2016-07-28 11:31:51

标签: javascript php wordpress

我有以下代码,允许我使用选择框在wordpress中回显我的产品类别:

 $arguments = array(
            'number'     => $number,
            'orderby'    => $orderby,
            'order'      => $order,
            'hide_empty' => $hide_empty,
            'include'    => $ids
 );

 $product_cats = get_terms( 'product_cat', $arguments );

 foreach ( $product_cats as $cat ) :
  echo '<option value="' . $cat->term_id . '">' . $cat->name . '</option>';
 endforeach;

我试图在json_encode()中使用我的foreach循环中返回的值,以便我可以使用我的javascript代码中的类别。

但我无法找到办法,有人可以提供任何指导吗?

如果我使用

<?php echo json_encode($product_cats); ?> 

它不起作用

3 个答案:

答案 0 :(得分:0)

尝试javascript标记;

<script type="text/javascript">
    var myCatJSON = JSON.parse('<?php echo json_encode($product_cats); ?>');
</script>

答案 1 :(得分:0)

您可以在javascript标记内执行此操作。请记住,代码应该在PHP标记之外。

<script type='text/javascript'>
<?php
$cat_array = json_encode($product_cats);
echo "var javasc_cat_array = ". $cat_array . ";\n";
?>
</script>

答案 2 :(得分:0)

正如其他建议的答案一样,请尝试将其放入脚本标签中:

<script>
    var cat = <?=json_encode($product_cats); ?>
</script>

然后你可以使用cat作为javascript对象。

P.S。 :不要忘记使用这个 BEFORE 你做foreach循环,因为它“清空”了数组。