我是初学者,试图从数据库中删除下拉菜单的值。我已经自动从数据库生成值,但我遇到的问题是我想要显示正在选择的值。 理想情况下,我试图更新我希望数据显示在HTML页面中的主题,其中每个项目都可以更新。我需要的是能够选择'位置'正在选择的主题。
这是我的代码:
<p>Position:
<select name="position">
<?php
$sel_subject = get_all_subjects();
$subject_count = mysql_num_rows($sel_subject);
//$subject_count+1 because we are adding a subject
for($count=1; $count <= $subject_count+1; $count++) {
echo "<option value=\"{$count}\"";
if($sel_subject['position'] == $count) {
echo " selected='selected'";
}
echo ">{$count}</option>";
}
?>
</select>
答案 0 :(得分:0)
您似乎依赖$count
成为一些保持静态的内部ID;鉴于它只是一个单调推进的整数,这似乎是一个冒险的命题。但是,如果您对此感到满意,那么您需要做的就是将最后一个echo语句中的值更改为主题名称而不是$ count。我宁愿鼓励你使用对数据库有意义的东西 - 例如,有些人创建一个名为subject_id
的auto_increment字段并关键字;其他人喜欢使用UUID s。
我通常建议使用foreach循环而不是for循环,因为它往往会简化代码(你不必担心维护计数器,或者创建fence post错误等)。 #39;一个简短的例子 - 我猜测你可以获得的实际数据是什么,希望你能把它推断到你实际拥有的数据。
<p>Position:
<select name="position">
<?php
$sel_subject = get_all_subjects();
foreach($sel_subject as $subject_num => $subject) {
echo '<option value="', $subject_num, '"';
if ($subject['selected']) {
echo 'selected="selected"';
}
echo '>', $subject['subject_name'], '</option>';
}