Php 如何从数据库中设置标记的值?

Php 如何从数据库中设置标记的值?,php,html,Php,Html,我正在从数据库中选择要在html/php上编辑的条目。我从中学到的代码不起作用。我需要一个更好的和有效的。我搜索过谷歌,但我看到的只是标签的默认值 $civil_status = $row[8]; //value from selecting the database <tr> <td>Civil Status:</td> <td><select name="civil_status" value='&l

我正在从数据库中选择要在html/php上编辑的条目。我从中学到的代码不起作用。我需要一个更好的和有效的。我搜索过谷歌,但我看到的只是标签的默认值

    $civil_status = $row[8]; //value from selecting the database

    <tr> 
    <td>Civil Status:</td> 
    <td><select name="civil_status" value='<?php $civil_status ?>'>
    <option value="single">Single</option>
    <option value="married">Married</option>
    </select></td>
    </tr>
您需要在选项标记中设置selected=selected。请这样尝试

$civil_status = $row[8]; //value from selecting the database
    <tr> 
    <td>Civil Status:</td> 
    <td><select name="civil_status">
    <option value="single" <?php if($civil_status == 'Single') echo 'selected="selected"';?>>Single</option>
    <option value="married" <?php if($civil_status == 'Married') echo 'selected="selected"';?>>Married</option>
    </select></td>
    </tr>

您需要选中要选择的选项,然后打印所选标记:

$civil_status = $row[8]; //value from selecting the database
<tr> 
<td>Civil Status:</td> 
<td><select name="civil_status" >
<option value="single" <?php $civil_status=="single" ? print "selected" : ""; ?> >Single</option>
<option value="married" <?php $civil_status=="married" ? print "selected" : ""; ?> >Married</option>
</select></td>
</tr>
你能试试这个吗

       <?php   
          $civil_status = $row[8]; //$civil_status ='married';
          $civil_statuses = array('single', 'married'); 
        ?>

        <select name="civil_status">
            <?php foreach($civil_statuses as $status){ ?>
                <option value="<?php echo $status;?>" <?php  echo if($civil_status==$status){ echo 'selected';} ?> ><?php echo ucfirst($status);?></option>
            <?php }?>
        </select>

你可以用快速肮脏的方式来做:

<tr>
    <td>Civil Status:</td> 
    <td>
        <select name="civil_status">
            <option value="single"<?php print($civil_status == "single" ? ' selected="selected"' : ""); ?>>Single</option>
            <option value="married"<?php print($civil_status == "married" ? ' selected="selected"' : ""); ?>>Married</option>
        </select>
    </td>
</tr>

创建选择菜单所需的任何地方都更加干净和可重复使用。

ex:可能也值得解释三元运算符,考虑到问题的前提,OP可能不熟悉它。他的代码正在运行,但是的,稍微解释一下会很好:谢谢!1选择中的默认选项在选项标记中,而不是在选择标记中。2当我写简短的if语句时,我更喜欢三元运算符表达式?正确指示:错误指示;这个代码也在工作!凉的谢谢哇!这段代码很酷,这是MVC,对吗?我还没有接触过这个技巧,但我会学会的。谢谢你,伙计!!!这段代码本身并不是真正的MVC,它只是一个方便的助手方法,在没有MVC的情况下也可以工作。但说实话,我最初是在MVC框架中看到这个解决方案的:我已经尝试过这个方法,但我不知道它是如何工作的。。。非常感谢你!因此,这可以用于2个以上的选项?当然,任何数量的选项。这是工作太多,但我需要它是可重用的。无论如何谢谢你!
function select_options($options, $selected)
{
    $result = "";
    foreach($options as $value => $label)
    {
         $result .= '<option value="' . 
             htmlentities($value, ENT_QUOTES, "UTF-8") . '"' . 
             ($selected == $value ? ' selected="selected"' : "") . '>' .
             htmlentities($label, ENT_QUOTES, "UTF-8") . '</option>';
    }
    return $result;
}
<tr>
    <td>Civil Status:</td> 
    <td>
        <select name="civil_status">
            <?php
                  print(select_options(array(
                       "single" => "Single",
                       "married" => "Married"
                  ), $civil_status));
            ?>
        </select>
    </td>
</tr>