I'm using Wordpress Settings API
. Everything works as it should except this select
dropdown. When I select an option, the value echoed is correct but in the dropdown it displays the default first value i.e 6
and not the selected one. Where am I going wrong?
public function someplugin_select() {
$options = get_option( 'plugin_252calc');
echo $options; //shows the correct value selected
$items = array();
for ($i=6; $i <=10; $i+= 0.1)
{
$items[] = $i;
}
echo '<select id="cf-nb" name="cf-nb">';
foreach ( $items as $item )
{
echo '<option value="'. $item .'"';
if ( $item == $options ) echo' selected="selected"';
echo '>'. $item .'</option>';
}
echo '</select>';
}
You don't need two separate loops, you can do everything in just one for
loop. In addition to that, you need to change your someplugin_select()
method in the following way,
public function someplugin_select() {
$options = round(floatval(get_option( 'plugin_252calc')), 1);
echo '<select id="cf-nb" name="cf-nb">';
for ($i = 6.0; $i <= 10.0; $i += 0.1){
$output = '<option value="'. $i .'"';
if ( $options == round($i, 1) ){
$output .= ' selected="selected"';
}
$output .= '>'. $i .'</option>';
echo $output;
}
echo '</select>';
}