Home › Forums › General Issues › [Checkbox] How to display all item as check uncheck
[Checkbox] How to display all item as check uncheck.
List item A,B,C,D,E.F,G,H
This post is check A,B,C,D
How to display all item but show status on check or uncheck ?
Why I don’t use True/false because it can’t our group.
I’m so sorry. I’m not good Englist.
Thank you so much.
$values = get_field('checkbox_field_name');
$field = get_field_object('checkbox_field_name');
$choices = $field['choices'];
foreach ($choices as $value => $label) {
echo $label,': ';
if (in_array($value, $values)) {
echo 'checked';
}
echo '<br />';
}
Hi there
Thanks for an awesome plugin. I cant get enough 🙂
I am trying to do something similar to @maxpeerawat… @hube2’s solution works for me but only if I set the field to return a VALUE only. I am using BOTH.
I have tried a few things but have been struggling for hours now. Can you please shed some light or point me in the right direction… I have this so far:
<?php
$values = get_field('features');
$field = get_field_object('features');
$choices = $field['choices'];
foreach ($choices as $value => $label) {
echo $label,': ';
if (in_array($value, $values['value'])) {
echo 'checked';
}
}
?>
Regards
Daryl
So the original answer was written before this was an option, in fact, the documentation here for the checkbox does not give what the array looks like and I’ve never used this option. The returned array looks something like this
Array
(
[0] => Array
(
[value] => 1
[label] => One
)
[1] => Array
(
[value] => 2
[label] => Two
)
[2] => Array
(
[value] => 3
[label] => Three
)
)
Given that you need to loop through both the choices and the values
$values = get_field('checkbox_field_name');
$field = get_field_object('checkbox_field_name');
$choices = $field['choices'];
foreach ($choices as $choice_value => $choice_label) {
echo $choice_label,': ';
foreach ($values as $value) {
if ($value['value'] == $choice_value) {
echo 'checked';
}
}// end foreach $values
} // end foreach $choices
@hube2 the code is great but I would like to add an else option for those unchecked.
a simple if else is not working
So if checked echo ‘checked’; else echo ‘unchecked’;
Please show me the light 😉
This gets me started. Is there a way to wrap everything in a container div and add an IF statement so it isn’t added if there are no values entered (i.e. nothing is checked)? Newbie here breaking things trying to figure it out.
If you are returning the value and the label in the field settings, it gets complicated. There isn’t an easy way to access the nested array values. We need to set a marker to see if we find it selected.
$values = get_field('checkbox_field_name');
$field = get_field_object('checkbox_field_name');
$choices = $field['choices'];
foreach ($choices as $choice_value => $choice_label) {
echo $choice_label,': ';
$found = false;
foreach ($values as $value) {
if ($value['value'] == $choice_value) {
$found = true;
echo 'checked';
}
} // end foreach $values
if (!$found) {
echo 'not ckecked';
}
} // end foreach $choices
I have been trying to get this code to work but I keep getting an error “Trying to access array offset on value of type bool on line 110”. My checkbox field name is available_features and it is a sub field in a group name tier. I have tried both codes:
Version 1:
<?php
$tier = get_field('tier');
$values = get_field($tier['available_features']);
$field = get_field_object($tier['available_features']);
$choices = $field['choices']; // This is the line 110 that keeps throwing the error ?>
<?php foreach($choices as $choice => $label) : ?>
<?php foreach ( $values as $value ) : ?>
<?php if( $value['value'] == $choice ) {
$status = 'available';
}
else {
$status = 'unavailable';
} ?>
<?php endforeach; ?>
<li class="<?php echo $status;?>"><?php echo $label;?></li>
<?php endforeach;?>
Version 2:
<?php
$tier = get_field('tier');
$values = get_field('available_features'); // This is the difference in V1 and V2
$field = get_field_object('available_features'); // This is the difference in V1 and V2
$choices = $field['choices']; // This is the line 110 that keeps throwing the error ?>
<?php foreach($choices as $choice => $label) : ?>
<?php foreach ( $values as $value ) : ?>
<?php if( $value['value'] == $choice ) {
$status = 'available';
}
else {
$status = 'unavailable';
} ?>
<?php endforeach; ?>
<li class="<?php echo $status;?>"><?php echo $label;?></li>
<?php endforeach;?>
I have also tried both with “get_sub_field” and “get_sub_field_object”. I keep running into the same error.
The topic ‘[Checkbox] How to display all item as check uncheck’ is closed to new replies.
Welcome to the Advanced Custom Fields community forum.
Browse through ideas, snippets of code, questions and answers between fellow ACF users
Helping others is a great way to earn karma, gain badges and help ACF development!
We use cookies to offer you a better browsing experience, analyze site traffic and personalize content. Read about how we use cookies and how you can control them in our Privacy Policy. If you continue to use this site, you consent to our use of cookies.