使用数据库值中的选定选项从mySQL返回表

时间:2015-11-07 14:54:37

标签: php mysql

我在php中编写一个任务管理网站,返回一个mySQL表;主要内容如下:

echo "<tr><td>" . $formatissuedate . "</td>" . "<td>" . $row["issuer"] . "            </td>" . "<td>" . $row["task"] . "</td>" . "<td>" . $row["responsibility"] . "</td>" . "<td>" . $formatduedate . "</td>" . "**<td>" . $row["status"] . "</td>**    </tr>";

但我想做的是:<td>" . $row["status"] . "</td> area是一个下拉列表,其中包含选项=&#34;已完成&#34;,&#34;已启动&#34;并且&#34;没有开始&#34;并将所选选项作为mySQL ($row["status"])的值。

我不知道该怎么做。一旦我解决了这个问题,我将编写一些jquery,以便在此值更改时使用更新的值写回mySQL数据库。非常感谢您的帮助!

3 个答案:

答案 0 :(得分:0)

这样的东西?

 <select>
   <option value="completed" <?php echo $row["status"] == "completed" ? "selected" : ""; ?>>Completed</option>
   <option value="started" <?php echo $row["status"] == "started" ? "selected" : ""; ?>>Started</option>
   <option value="not started" <?php echo $row["status"] == "not started" ? "selected" : ""; ?>>Not started</option>
 </select> 

答案 1 :(得分:0)

下面的内容应该让你知道如何继续。如果这些记录是在循环中创建的(即:记录集迭代),那么您可以在循环开始之前定义数组$options

<?php
    /* Assume this is in a loop? Also, assumed a record called `id` */
    $status=$row['status'];
    $options=array('completed','started','not started');

    echo "
        <tr>
            <td>" . $formatissuedate . "</td>
            <td>" . $row["issuer"] . "</td>
            <td>" . $row["task"] . "</td>
            <td>" . $row["responsibility"] . "</td>
            <td>" . $formatduedate . "</td>
            <td>
                <select name='status_{$row['id']}'>";

    foreach( $options as $key ){
        $selected=( $key==$status ) ? 'selected' : '';
        echo "<option value='{$key}'{$selected}>{$key}";    
    }

    echo "          
                </select>
            </td>
        </tr>";
?>

答案 2 :(得分:0)

如果您只有少数几个固定的选项列表,您可以编写如下代码:

$statusList = array(0 => 'Disabled', 1 => 'Enabled');

echo '<select name="status">';
foreach($statusList as $statusId => $statusName) {
    $selected   = ($statusId == $row["status"]) ? ' selected="selected"' : '';
    echo '<option value="'.$statusId.'"'.$selected.'>'.$statusName.'</option>';
}
echo '</select>';

如果您的下拉列表中有多个选项,或者您的选项可能会随着时间的推移而发生变化,那么最好为它们创建一个单独的数据库表。