搜索

首页  >  问答  >  正文

为何所选下拉框值未显示?

我正在为我的WordPress插件构建一个函数,它会显示一个下拉列表,其中包含所有可用的页面。当我点击“保存更改”时,值会完美地保存在数据库中。它也完美地更新了值。但是,选择的值没有显示在下拉列表中。当点击“保存更改”时,值会被保存,但是下拉列表会再次重置为“选择一个”。它不能显示所选的选项。我在这里做错了什么吗?任何指导都将不胜感激。

<form method=post>
<div class="header-right">
  <?php
  $posts = get_pages(
    array(
        'post_status' => 'publish',
    )
  );
  
  ?>
  <select name="page_for_logged_in" id="page_for_logged_in">
    <option selected="selected">选择一个</option>
    <?php
    foreach ( $posts as $page ) {
        ?>
        <option value="<?php echo esc_attr( $page->post_name ); ?>" <?php selected(get_option('page_for_logged_in'), 'page')?>><?php echo esc_html( $page->post_title ); ?></option>
        <?php
    }
    ?>
  </select>

  <?php
  if(empty($_POST['page_for_logged_in'])) {
      
    } else {
      $myvalue=$_POST['page_for_logged_in'];
      update_option('page_for_logged_in', $myvalue, $autoload = 'no');
    }
    ?>

<?php submit_button(); ?>

</p>
</br>
</br>
</form>

P粉090087228P粉090087228433 天前697

全部回复(1)我来回复

  • P粉197639753

    P粉1976397532023-09-13 12:24:36

    好的,所以我找到了解决我的问题的方法。下面是粘贴的代码;对某人可能有帮助。

    <form method=post>
        <div class="header-right">
          <?php
          $posts = get_pages(
            array(
                'post_status' => 'publish',
            )
          );
          
          ?>
          <?php
          if(empty($_POST['page_for_logged_in'])) {
              
            } else {
              $myvalue=$_POST['page_for_logged_in'];
              update_option('page_for_logged_in', $myvalue, $autoload = 'yes');
            }
            ?>
          <select name="page_for_logged_in" id="page_for_logged_in">
            <option value="" disabled selected>选择一个</option>
            <?php
            foreach ( $posts as $page ) {
                ?>
            <option value="<?php echo esc_attr( $page->post_title ); ?>" <?php echo ( get_option('page_for_logged_in') == $page->post_title ? 'selected' : '' ); ?>><?php echo esc_html( $page->post_title ); ?></option>
                <?php
            }
            ?>
          </select>
    
        <?php submit_button(); ?>
    
        </p>
        </br>
        </br>
        </form>

    回复
    0
  • 取消回复