我在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数据库。非常感谢您的帮助!
答案 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>';
如果您的下拉列表中有多个选项,或者您的选项可能会随着时间的推移而发生变化,那么最好为它们创建一个单独的数据库表。