2016-07-28 126 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循環,因爲它「清空」數組。