recherche

Maison  >  Questions et réponses  >  le corps du texte

Pourquoi la valeur de la liste déroulante sélectionnée n'est-elle pas affichée ?

Je construis une fonction pour mon plugin WordPress qui affichera une liste déroulante de toutes les pages disponibles. Lorsque je clique sur "Enregistrer les modifications", les valeurs sont parfaitement enregistrées dans la base de données. Il met également parfaitement à jour la valeur. Cependant, la valeur sélectionnée n'est pas affichée dans la liste déroulante. Lorsque vous cliquez sur "Enregistrer les modifications", les valeurs sont enregistrées, mais la liste déroulante est réinitialisée sur "Sélectionner un". Il ne peut pas afficher l'option sélectionnée. Est-ce que je fais quelque chose de mal ici? Toute orientation serait grandement appréciée.

<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粉090087228514 Il y a quelques jours797

répondre à tous(1)je répondrai

  • P粉197639753

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

    Ok, j'ai donc trouvé une solution à mon problème. Vous trouverez ci-dessous le code collé ; il peut être utile à quelqu'un.

    <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>

    répondre
    0
  • Annulerrépondre