2010-09-19 27 views
11

我有一个下一块模板:如何设置HTML选择框的设定值与PHP

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

$result['interest']店产生的价值。

如何将option元素标记为使用PHP选择的元素?

谢谢!

回答

27

手动方式.....

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

的更好的方式是遍历利益

$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

不要忘了逃离你的HTML! 'htmlspecialchars($ var)'是你的朋友 http://stackoverflow.com/questions/6249151/how-to-properly-escape-html-form-input-default-values-in-php – edhurtig 2016-06-02 08:21:01

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

'比我的解决方案 – sshow 2010-09-19 20:02:00

+1

呼应HTML整洁+ 1'只是似乎是错误的我 – Galen 2010-09-19 20:05:43

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

?> 这涉及到制作一个包含你的列表的字符串,然后使用字符串替换函数来找到正确的选项并将选择的内容添加到标签。如果使用XHTML,则需要使用selected =“selected”。

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

+0

我喜欢这种方法。谢谢。共享的。 – 2016-04-04 06:35:05

1

你需要让PHP插入selected="selected"属性为适当<option>标签,就像这样:

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

这似乎是一个很好的第一个答案,但我已经编辑了您的答案,以提供有关更改的解释。 [This](http://stackoverflow.com/help/how-to-answer)可能值得一读。 – 2016-06-09 02:37:00

+0

当你回答问题时,不要只发布答案。提供一些关于您的解决方案的更多信息 – tarzanbappa 2016-06-09 02:37:31

+0

感谢@AlastairBrown .Sorry,我第一次来这里发表回答。下次我会把这件事留在我的脑海。 – 2016-06-09 13:49:36