2010-09-19 5 views
11

Ich habe ein nächstes Stück der Vorlage setzen:Wie ausgewählten Wert von HTML-Auswahlbox mit PHP

<select name="interest"> 
    <option value="seo">SEO и Блоговодство</option> 
    <option value="auto">Авто</option> 
    <option value="business">Бизнес</option> 
    <option value="design">Дизайн</option> 
    ... 

und speichern resultierenden Wert in $result['interest'].

Wie kann ich option Element als ausgewählt mit PHP markieren?

Danke!

Antwort

27

Die manuelle Art und Weise .....

<select name="interest"> 
    <option value="seo"<?php if($result['interest'] == 'seo'): ?> selected="selected"<?php endif; ?>>SEO и Блоговодство</option> 
    ..... 

Der bessere Weg, eine Schleife durch die Interessen wäre

$interests = array(
    'seo' => 'SEO и Блоговодство', 
    'auto' => 'Авто', 
    .... 
); 

<select name="interest"> 
<?php foreach($interests as $var => $interest): ?> 
<option value="<?php echo $var ?>"<?php if($var == $result['interest']): ?> selected="selected"<?php endif; ?>><?php echo $interest ?></option> 
<?php endforeach; ?> 
</select> 
+1

Vergessen Sie nicht, Ihrem HTML zu entkommen! 'htmlspecialchars ($ var)' ist dein Freund http://stackoverflow.com/questions/6249151/how-to-properly-escape-html-form-input-default-values-in-php – edhurtig

3
<select name="interest"> 
    <option value="seo"<?php if($result['interest'] == 'seo'){ echo ' selected="selected"'; } ?>>SEO</option> 
    <option value="auto"<?php if($result['interest'] == 'auto'){ echo ' selected="selected"'; } ?>>Auto</option> 
    <option value="business"<?php if($result['interest'] == 'business'){ echo ' selected="selected"'; } ?>>Business</option> 
    <option value="design"<?php if($result['interest'] == 'design'){ echo ' selected="selected"'; } ?>>Design</option> 
</select> 
10
<?php 
$interests = array('seo' => 'SEO и Блоговодство', 'auto' => 'Aвто', 'business' => 'Бизнес', ...); 
?> 
<select name="interest"> 
<?php 
foreach($interests as $k => $v) { 
?> 
    <option value="<?php echo $k; ?>" <?php if($k == $result['interest']) ?> selected="selected" <?php } ?>><?php echo $v;?></option> 
<?php 
} 
?> 
</select> 
+1

'+ 1 'sauberere als meine Lösung – sshow

+1

die HTML-Echo scheint nur falsch mich – Galen

0
<select name="interest"> 
<option value="seo" <?php echo $result['interest'] == 'seo' ? 'selected' : ''?> >SEO и Блоговодство</option> 
<option value="auto" <?php echo $result['interest'] == 'auto' ? 'selected' : ''?>>Авто</option> 
<option value="business" <?php echo $result['interest'] == 'business' ? 'selected' : ''?>>Бизнес</option> 
<option value="design" <?php echo $result['interest'] == 'design' ? 'selected' : ''?>>Дизайн</option> 
3
<?php 
$list='<select name="interest"> 
    <option value="seo">SEO и Блоговодство</option> 
    <option value="auto">Авто</option> 
    <option value="business">Бизнес</option> 
    <option value="design">Дизайн</option> 
    ...'; 
echo str_replace('value="' . $result['interest'] . '"','value="' . $result['interest'] . '" selected',$list); 

?> Dazu müssen Sie eine Zeichenfolge erstellen, die Ihre Liste enthält, und dann die Funktion zum Ersetzen von Zeichen verwenden, um die richtige Option zu finden und die Markierung zum Tag hinzuzufügen. Wenn Sie XHTML verwenden, müssen Sie selected = "selected" verwenden.

http://sandbox.onlinephpfunctions.com/code/37eb8f5a213fe5a252cd4da6712f3db0c5558ae3

+0

Ich mag diesen Ansatz . Danke. zum Teilen. –

1

Sie müssen PHP bekommen die selected="selected" Attribut für den entsprechenden <option> Tag eingefügt werden, wie folgt aus:

<?php $result=$userRow['ad_type']; ?> 
      <select class="form-control" name="ad_type"> 
       <option <?php if($result == 'text'){ echo ' selected="selected"'; } ?> value="text">Text</option> 
       <option <?php if($result == 'image'){ echo ' selected="selected"'; } ?> value="image">Image</option> 
       <option <?php if($result == 'video'){ echo ' selected="selected"'; } ?> value="video">Video</option> 
       <option <?php if($result == 'htmladsense'){ echo ' selected="selected"'; } ?> value="htmladsense">Html Adsense</option> 
      </select> 
+0

Dies scheint eine gute erste Antwort zu sein, aber ich habe Ihre Antwort bearbeitet, um eine Erklärung für die Änderungen zu liefern. [This] (http://stackoverflow.com/help/how-to-answer) könnte es wert sein, gelesen zu werden. –

+0

Wenn Sie Fragen beantworten, schreiben Sie nicht nur die Antwort. Geben Sie einige weitere Informationen über Ihre Lösung – tarzanbappa

+0

Dank @AlastairBrown .Sorry, Es ist mein erstes Mal hier, um die Antwort zu veröffentlichen .Nächste Mal werde ich dieses Ding in meinem Kopf behalten. –

Verwandte Themen