2016-07-28 88 views
0

我有下面的代码,让我来呼应我的产品类别在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代码来

+0

json_encode($ cat);在foreach里面? – Janno

+1

你为什么要使用'json_encode()'? –

+0

关闭echo'';。只能使用echo json_encode($ product_cats);外部循环。你的整个输出应该是一个json字符串 – Mickey

回答

0

尝试;

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

如果这是答案他为什么需要JSON? – Mickey

0

你可以在javascript标签内做到这一点。记住代码应该在PHP标签之外。

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

至于其他的答案建议尽量把它在脚本标签是这样的:

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

然后你就可以用猫作为一个JavaScript对象。

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