2016-07-28 4 views
0

Ich habe den folgenden Code, die ich meine Produktkategorien in Wordpress withing eine Auswahlbox Echo erlaubt:Verwenden json_encode() mit einer foreach-Schleife

$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; 

Ich versuche, die zurückgegebenen Werte aus meiner foreach-Schleife zu verwenden, innerhalb der json_encode(), so dass ich die Kategorien in meinem JavaScript-Code verwenden kann.

Aber ich kann nicht einen Weg, es zu tun, kann jemand eine Anleitung geben?

Wenn ich

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

es nicht

+0

json_encode ($ cat); in der foreach? – Janno

+1

Warum möchten Sie 'json_encode()' verwenden? –

+0

schalte echo 'aus ';. Verwenden Sie nur echo json_encode ($ product_cats); äußere Schleife. Ihre gesamte Ausgabe sollte eine JSON-Zeichenfolge sein – Mickey

Antwort

0

Versuch in JavaScript-Tag funktioniert;

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

Wenn dies die Antwort dann ist warum braucht er JSON? – Mickey

0

Sie können dies innerhalb eines Javascript-Tags tun. Denken Sie daran, dass der Code außerhalb des PHP-Tags liegen sollte.

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

Wie andere Antworten vorgeschlagen versuchen, es in den Script-Tags wie folgt zu setzen:

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

Und dann können Sie als Javascript-Objekt verwenden Katze.

P.S. : Vergessen Sie nicht, diese BEFORE verwenden Sie die Foreach-Schleife, wie es das Array "leert".