【问题标题】:<select> tag not loading selected item when form load<select> 标签在表单加载时未加载所选项目
【发布时间】:2012-01-19 23:30:21
【问题描述】:

我正在使用 Wordpress 主题,并且正在使用 Wordpress 设置 API 添加新设置选项。

我想要做的是从我网站上的 wordpress 页面数据库中填充一个下拉列表,然后让用户为特定选项选择他们想要的页面。

我当前的代码发生的情况是它将填充并选择页面 - 甚至将其保存到我的数据库中,但是当我再次打开选项页面时,它会将显示的选择恢复为默认选项- 它不会更改数据库中的任何内容,它只是在加载时不显示数据库中的选项。有什么想法吗?

这是我用来显示下拉列表的函数:

 function  setting_dropdown_fn() {
$options = get_option('wellness_options');
echo "<select name='wellness_options[page_string]'>" ;
   $pages = get_pages(); 
  foreach ( $pages as $pagg ) {
$option = '<option value="' . get_page_link( $pagg->ID ) . '">';
$option .= $pagg->post_title;
$option .= '</option>';
echo $option;
  } 
echo '</select>';}

【问题讨论】:

  • 您当前的代码是什么?不看就很难说是哪里出了问题!
  • 您当前的代码不能正常工作。您应该修复代码中的问题以使其正常工作。
  • 您没有正确检索存储的选项。在用于显示

标签: php javascript html wordpress themes


【解决方案1】:

您需要在输出下拉列表时将其设置为“已选择”选项。 HTML 输出(将第 3 页保存到数据库后)如下所示:

<select id="whatever" name="whatever">
  <option value="1">First Page</option>
  <option value="2">Second Page</option>
  <option value="3" selected="selected">Third Page</option>
  <option value="4">Fourth Page</option>
</select>

WordPress 有一个 helper1 函数可以让这更容易,在 for/foreach 循环中你可以使用:

<?php selected($value_in_database, $value_of_this_option); ?>

如果需要,该代码会为您输出 selected="selected"

【讨论】:

    猜你喜欢
    • 2020-03-03
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 2012-04-29
    • 2010-11-22
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    相关资源
    最近更新 更多