it-swarm.com.de

Mit der WordPress Funktion selected ()

Ich verwende die WordPress-Funktion selected(), um die aktuelle Option in einer Dropdown-Liste anzuzeigen. Das Problem, das ich habe, ist, dass WordPress aus irgendeinem Grund zusätzlich zu den eigentlichen selected='selected'-Elementen <option> über dem Formular ausgibt. So benutze ich die Funktion selected().

<select name='gender'>
<option value='male' " . selected( $values['gender'] , 'male') . ">Male</option>
<option value='female' " . selected( $values['gender'] , 'female') . ">Female</option>
<option value='other' " . selected( $values['gender'] , 'other') . ">Other</option>         
</select>

Durch das Entfernen des obigen Markups wird der selected='selected' entfernt, der vollständig außerhalb des <form>-Elements angezeigt wird.

1
lsparks

Die ausgewählte Funktion bewirkt eine sofortige Ausgabe, es wird kein String zurückgegeben. Aus diesem Grund können Sie es in einem String-Erstellungsmodus nicht so verwenden.

Wenn Sie möchten, dass eine Zeichenfolge zurückgegeben wird, anstatt den Text sofort auszugeben, übergeben Sie false an den Parameter $ echo.

$string = "
<select name='gender'>
<option value='male' " . selected( $values['gender'] , 'male', false) . ">Male</option>
<option value='female' " . selected( $values['gender'] , 'female', false) . ">Female</option>
<option value='other' " . selected( $values['gender'] , 'other', false) . ">Other</option>         
</select>
";
6
Otto

Wo sind Ihre PHP Tags?

<select name="gender">
<option value="male" <?php selected( $values['gender'] , 'male'); ?>>Male</option>
<option value="female" <?php selected( $values['gender'] , 'female'); ?>>Female</option>
<option value="other" <?php selected( $values['gender'] , 'other'); ?>>Other</option>         
</select>

Es sei denn, Sie wickeln das Ganze irgendwie in ein Echo ein, das nicht in Ihrem Code-Snippet angezeigt wird?

Wahrscheinlich auch eine Frage persönlicher Vorlieben, aber ich setze HTML-Attribute immer in doppelte Anführungszeichen und PHP-Attribute in einfache Anführungszeichen, um zu vermeiden, dass sie in gemischte PHP/HTML-Markups verwechselt werden.

0
Chip Bennett