【问题标题】:Radio button chosen value retention单选按钮选择值保留
【发布时间】:2014-04-04 04:45:49
【问题描述】:

我正在处理一个 WordPress 设置页面,该页面有一个带有 2 个给定选项“是”或“否”的单选按钮,但它似乎没有保留所选选项,它在刷新后取消选择。所选选项保持选中状态非常重要,因为它会触发元素的显示。我已经研究并试验了下面的 PHP 函数,但它仍然没有保留选择的选项。

function section_footer() {}
    add_settings_field('socialbar', 'Display Social Bar', 'socialbar', __FILE__, 'footer_settings' );

}
    function socialbar() {
        $options = get_option('theme_options');  echo "<input name='theme_options[socialbar]' type='radio' value='yes'  />"; echo 'Yes';  echo "&nbsp;&nbsp;&nbsp;";
            if (isset($socialbar) && $socialbar=="yes") echo "checked";

        $options = get_option('theme_options');  echo "<input name='theme_options[socialbar]' type='radio' value='no'  />"; echo 'No';
        if (isset($socialbar) && $socialbar=="no") echo "checked";

    }

【问题讨论】:

  • 你在输出checked之前关闭你的&lt;input&gt;标签——所以checked不是那个输入元素的属性,而只是普通的text 在它之后。 (而且你的函数甚至不知道变量$socialbar,因为它不在其作用域内,也没有作为参数传入。)
  • 感谢指正。如何安全地将它们结合起来?

标签: php wordpress


【解决方案1】:

您需要在输入声明中回显“已检查”。

将您的 PHP 更改为以下内容。您可以使用三元运算符内联执行 if 语句。

function socialbar() {
    $options = get_option('theme_options');  echo "<input name='theme_options[socialbar]'   type='radio' value='yes' ".(isset($socialbar) && $socialbar=="yes" ? "checked" : "")." />"; 

    echo 'Yes';  echo "&nbsp;&nbsp;&nbsp;";

    $options = get_option('theme_options');  echo "<input name='theme_options[socialbar]' type='radio' value='no' ".(isset($socialbar) && $socialbar=="no" ? "checked" : "")."  />"; echo 'No';

}

【讨论】:

  • Mituw16 它仍然没有保留选择的值
  • 您也可以发布您的 HTML 吗?我只是把你现有的 PHP 转换成三元 if。
  • WordPress 函数中的所有 PHP。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-20
  • 2014-04-22
  • 2014-05-19
  • 2012-12-30
  • 2012-03-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多