2009-08-26 37 views
10

有什么方法可以使用以下“类型”代码在下拉框中设置所选项目?如何在下拉框中设置所选项目

<select selected="<?php print($row[month]); ?>"><option value="Janurary">January</option><option value="February">February</option><option value="March">March</option><option value="April">April</option></select> 

该数据库保存一个月..我想允许编辑页面上,他们选择这个月..但它被预先填充他们的当前设置?

回答

45

您需要设置正确的选项标签的选择的属性:

<option value="January" selected="selected">January</option> 

你的PHP将是这个样子:

<option value="January"<?=$row['month'] == 'January' ? ' selected="selected"' : '';?>>January</option> 

我通常发现有整洁创建值的数组并通过它循环创建一个下拉菜单。

+0

的Erk对不起,没看到你最在发布我的内容前,请阅读相同的评论我会鼓励你的,但留给提问者挑选一个胜利者。顺便说一句,你的开放PHP标签有一个错字?或者是“<?='有效? – 2009-08-26 17:55:58

+0

你的答案是:)让我更有意义哈哈! – tarnfeld 2009-08-26 17:57:11

+3

<?=是有效的 - 它为你做了一个回声 – Greg 2009-08-26 18:26:50

13

您在<option>标记上标记了所选项目,而不是<select>标记。

所以,你的代码应该读的东西是这样的:

<select> 
    <option value="January"<?php if ($row[month] == 'January') echo ' selected="selected"'; ?>>January</option> 
    <option value="February"<?php if ($row[month] == 'February') echo ' selected="selected"'; ?>>February</option> 
    ... 
    ... 
    <option value="December"<?php if ($row[month] == 'December') echo ' selected="selected"'; ?>>December</option> 
</select> 

您可以通过将阵列中的所有月份名称,并使用过他们一个基本的foreach这个少重复。

+0

或者像这样:http://stackoverflow.com/ a/3747240/2615737 – 2015-02-23 22:00:41

4

,如果你使用MySQL数据库,您可以使用此方法:

include('sql_connect.php'); 
$result = mysql_query("SELECT * FROM users WHERE `id`!='".$user_id."'"); 
while ($row = mysql_fetch_array($result)) 
{ 
    if ($_GET['to'] == $row['id']) 
    { 
     $selected = 'selected="selected"'; 
    } 
    else 
    { 
    $selected = ''; 
    } 
    echo('<option value="'.$row['id'].' '.$selected.'">'.$row['username'].' ('.$row['fname'].' '.substr($row['lname'],0,1).'.)</option>'); 
} 
mysql_close($con); 

它会比较,如果用户在$ _GET [“到”]是一样的$行[“身份证”]表如果是,则选择的$将被创建。这是一个私人的邮件系统......

1

简单的方式

<select class ="dropdownstyle" name="category" selected="<?php print($messageeditdetails[0]['category_id']); ?>"> 

<option value=""><?php echo "Select"; ?></option> 

<?php foreach ($dropdowndetails as $dropdowndetails) { ?> 
    <option <?php if($messageeditdetails[0]['category_id'] == $dropdowndetails['id']) { ?> selected="<?php echo $dropdowndetails['id']; ?>" <?php } ?> value="<?php echo $dropdowndetails['id']; ?>"><?php echo $dropdowndetails['category_name']; ?></option> 
<?php } ?> 
</select> 
3

简单和易于使用的三元运营商在PHP

<?php $plan = array('1' => 'Green','2'=>'Red'); ?> 
<select class="form-control" title="Choose Plan"> 
<?php foreach ($plan as $id=> $value) { ?> 
    <option value="<?php echo $id;?>" <?php echo ($id== '2') ? ' selected="selected"' : '';?>><?php echo $value;?></option> 
<?php } ?> 
</select> 
0

设置选择的值理解的例子这是解决方案我想出了...

<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>"> 
    <select name="select_month"> 
     <?php 
      if (isset($_POST['select_month'])) { 
       if($_POST["select_month"] == "January"){ 
        echo '<option value="January" selected="selected">January</option><option value="February">February</option>'; 
       } 
       elseif($_POST["select_month"] == "February"){ 
        echo '<option value="January">January</option><option value="February" selected="selected">February</option>'; 
       } 
      } 
      else{ 
       echo '<option value="January">January</option><option value="February">February</option>'; 
      } 
     ?> 
    </select> 
    <input name="submit_button" type="submit" value="Search Month"> 
</form> 
0

它太旧,但我必须添加我的方式以及:)因为使用它是通用的,特别是在使用静态下拉值时非常有用。

function selectdCheck($value1,$value2) 
    { 
    if ($value1 == $value2) 
    { 
     echo 'selected="selected"'; 
    } else 
    { 
     echo ''; 
    } 
    return; 
    } 

和你下拉选项,你可以使用这样此功能,并因为它与你的所有选择框适合你可以使用它作为很多,你可以/下拉菜单

<option <?php selectdCheck($row[month],january); ?> value="january">january</option> 

:)我希望这个功能帮助别人

-3

您可以选择标签后,试试这个:

<option value="yes" selected>yes</option> 
<option value="no">no</option> 
+0

我会考虑修改这个答案。你的答案不会触及php。 – 2018-03-02 20:51:24