使用json_encode()的foreach循环
问题描述:
我有下面的代码,让我来呼应我的产品类别在WordPress withing一个选择框:使用json_encode()的foreach循环
$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;
我想从我的foreach循环使用返回值在json_encode()中,以便我可以在我的JavaScript代码中使用这些类别。
但我想不出有办法做到这一点,任何人都可以提供任何指导?
如果我使用
<?php echo json_encode($product_cats); ?>
它不工作的JavaScript代码来
答
尝试;
<script type="text/javascript">
var myCatJSON = JSON.parse('<?php echo json_encode($product_cats); ?>');
</script>
+0
如果这是答案他为什么需要JSON? – Mickey
答
你可以在javascript标签内做到这一点。记住代码应该在PHP标签之外。
<script type='text/javascript'>
<?php
$cat_array = json_encode($product_cats);
echo "var javasc_cat_array = ". $cat_array . ";\n";
?>
</script>
答
至于其他的答案建议尽量把它在脚本标签是这样的:
<script>
var cat = <?=json_encode($product_cats); ?>
</script>
然后你就可以用猫作为一个JavaScript对象。
P.S. :不要忘记使用这个之前你做foreach循环,因为它“清空”数组。
json_encode($ cat);在foreach里面? – Janno
你为什么要使用'json_encode()'? –
关闭echo'';。只能使用echo json_encode($ product_cats);外部循环。你的整个输出应该是一个json字符串 – Mickey