Hi,
I have a repeater called display_list and I want to output the checkbox categories I assign to to it like cat1,cat2,cat3…
I was expecting ' . $row['category'] .
to do it but I just get the value “Array”. The field is set to show labels and the var_dump does show the values e.g.:
array(2) {
[0]=>
string(15) "Business Topics"
[1]=>
string(14) "General Topics"
} <code>...from the</code>var_dump($row);
<?php
$rows = get_field(‘database_list’);
if($rows)
echo ‘<ul class=”db-list”>’;
{
$i = 0;
foreach($rows as $row)
echo ‘<li class=”Department” rel=”‘ . $row['category'] . ‘”><a href=”‘ . $row[‘link’] . ‘” target=”_blank”>’ . $row[‘title’] . ‘</a><a href=”anchor#” class=”addspeech” rel=”#’.$i.'”></a></li>’. PHP_EOL;
$i++;
var_dump($row);
}
}
echo ‘</ul>’;
?>
…how do I capture and output the values? Thanks
A checkbox field stores an array, to output the values you need to loop over that array,
I’m not sure why you’re using $rows = get_field(‘database_list’);
instead of a have_rows()
loop https://www.advancedcustomfields.com/resources/have_rows/
something like this, note this is not exact code, just an example.
if (have_rows('database_list')) {
while (have_rows('database_list')) {
$categories = get_sub_field('category');
if ($categories) {
// loop over catagories
foreach ($categories as $category) {
echo '<li>'.$category.'</li>';
}
}
}
}
or using an array
$rows = get_field('database_list');
if ($rows) {
foreach ($rows as $row) {
if ($row['category']) {
foreach ($row['category'] as $category) {
echo '<li>'.$category.'</li>';
}
}
}
}