首頁  >  問答  >  主體

為何所選下拉框值未顯示?

我正在為我的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粉090087228402 天前662

全部回覆(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
  • 取消回覆