Support » Allgemeine Fragen » Plugin Options Page | Dropdown value speichern

  • Hallo zusammen

    ich habe folgendes „Problem“:

    • Habe eine dropdwon Selectbox die automatisch von einem Ordnerinhalt befüllt wird.
    • Nach der Auswahl und dem sichern sprint die Auswahl im Dropdown wieder auf den default value zurück.

    Habe auch mit selected=“Selected“ getestet, aber es klappt nicht. Hat jemand einen Idee?

    
    add_settings_field( 
        'psg_dyn_select_1', 
        __( 'Settings field description', 'wordpress' ), 
        'psg_dyn_select_1_render', 
        'pluginPage', 
        'psg_pluginPage_section' 
    );
    
    function psg_dyn_select_1_render ( ) {
    
    $options = get_option( 'psg_settings' );
    ?>
    <select name= 'psg_settings[psg_dyn_select_1]'>
       <?php foreach ( glob( plugin_dir_path( __FILE__ ) . "assets/images/*" ) as $filename){
       $filename = basename($filename);
       echo "<option value='" . $filename . "'>".$filename." </option>";}?>     
    </select> 

    vielen Dank und einen schönen Tag Euch allen.

    Dani

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Hallo,

    ich hoffe mal das du die Einstellung auch in der option speicherst.

    in deiner foreach musst du abfrage ob $filename == $options ist und wenn ja, den Eintrag als selected markieren.

    Gruß
    Frank

    Thread-Starter soniccube

    (@soniccube)

    Hallo Frank

    besten Dank für Deine Antwort. Ich bin ein Stück weiter, aber irgendwie kriege ich es auch nach Tagen nicht hin wie es soll. Habe noch ein dropdwon mit fixen werten oben an mein dynamisches eingesetzt. Dieses wird schön gespeichert und behält den wert nach einem reload. Beim dynamischen klappt es einfach nicht.

    Siehst du etwas das ich anpassen müsste? Vielen Dank!

    function psg_select_field_4_render(  ) { 
    
    	$options = get_option( 'psg_settings' );
    	?>
    	<select name='psg_settings[psg_select_field_4]'>
    		<option value='1' <?php selected( $options['psg_select_field_4'], 1 ); ?>>Option 1</option>
    		<option value='2' <?php selected( $options['psg_select_field_4'], 2 ); ?>>Option 2</option>
    	</select>
    
    <?php
    
    }
    
    	function psg_dyn_select_1_render ( ) {
    		
    	$options = get_option( 'psg_settings' );
    ?>
    <select name= 'psg_settings[psg_dyn_select_1]'>
      	<?php foreach ( glob( plugin_dir_path( __FILE__ ) . "assets/images/*" ) as $options){
      	$options = basename($options);
    	$selected = 'selected="selected"';
      	echo "<option $selected value='" . $options . "'>".$options." </option>";}?>
        </select> 
    	<?php
    	}
    Thread-Starter soniccube

    (@soniccube)

    So funktionierts:

    function psg_select_thumbnail(  ) { 
    	
    			$options = get_option( 'psg_settings' );
       			?><select name='psg_settings[psg_select_thumbnail]'>
        		<?php foreach ( glob( plugin_dir_path( __FILE__ ) . "../assets/images/*" ) as $options['filename']){
            	$options['filename'] = basename ($options['filename'],'.svg' );
    			if ( $options['filename'] == $options['psg_select_thumbnail'] ) {
                echo '<option value="'.$options['filename'].'" selected="selected">'.$options['filename'].'</option>';
           		} else {
              	echo '<option value="'.$options['filename'].'">'.$options['filename'].'</option>';}
        		}
      			?></select><?php
    		}

    Falls jemand noch Optimierungspotenzial sieht, bin ich sehr froh um jeden Tip.

    Danke!

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Das Thema „Plugin Options Page | Dropdown value speichern“ ist für neue Antworten geschlossen.