根据变量值更改html select中的选定选项

时间:2013-03-13 23:54:55

标签: php html select selected

我的代码就像

    echo("<td>$row[Status]</td>");
    echo("<td>
    <select name=\"choose\" id=\"Choose\" onChange=\"\">
    <option value=\"Unverified\">Unverified</option>
    <option value=\"Approved\">Approve</option>
    <option value=\"Decline\">Decline</option>
    <option value=\"Pending\">Pending</option>                   
    </select>
    </td>");

这是我想要做的 如果($ row [Status] == Approved)那么代码应该像这样改变

.
.
<option value=\"Approved\" Selected>Approve</option>
.
.

最简单的方法是为所有人创建一个简单的if条件,但必须有更聪明的方法来做到这一点。有任何想法吗?

我宁愿把它保存在php本身。如果你要使用一些更复杂的符号,比如a =&gt; b请解释为何使用它及其作用。

3 个答案:

答案 0 :(得分:1)

创建可能值的数组,然后在循环中创建选项。这样,你只需要编写一个条件,使当前条件符合所需(此处,已批准)的值

答案 1 :(得分:0)

试试这个!它将遍历整个数组,并在到达时选择所选的选项。这是你在找什么?

尚未经过测试)     

echo ("<select name=\"choose\" id=\"Choose\" onChange=\"\">");

$sel["Unverified"] = "Unverified";
$sel["Approved"] = "Approve";
$sel["Decline"] = "Decline";
$sel["Pending"] = "Pending";

$selected = "Approved";

foreach($sel as $key => $value) {
    if ($selected == $key) {
        echo ("<option value=\"$key\">$value</option>");
    }
    else {
        echo ("<option value=\"$key\" selected>$value</option>");
    }
}

echo ("</select>");

?>

答案 2 :(得分:0)

    echo("<td>$row[Status]</td>");
    $search= "$row[Status]\"";
    $replace= "$row[status]\" Selected";
    $subject="<td>
    <select name=\"choose\" id=\"Reason\" onChange=\"\">
         <option value=\"Unverified\">Unverified</option>
         <option value=\"Approved\">Approve</option>
         <option value=\"Decline\">Decline</option>
         <option value=\"Pending\">Pending</option>                     
         </select>
         </td>";
$subject=str_replace($search, $replace, $subject);
echo $subject;

我使用了上面的内容并获得了我想要的结果...浪费了一个小时,不知道str_replace会返回编辑后的值而不是替换$ subject。谢谢大家。