我正在使用HTML和PHP在页面上的mysql数据库中选择和显示记录。当我单击一条记录时,它将打开一个编辑窗口。此新窗口显示所选一个记录的所有内容,并且可以更新所有内容。然后将更新保存到该记录的数据库中。
我的问题是:字段之一在编辑窗口中显示为下拉列表。使用页面上的选择填充下拉列表(类似于以下内容)。单击特定记录以打开编辑窗口时,我总是在下拉菜单中看到第一个选项,而不是与记录相关的选项。
我需要能够从下拉列表中看到与我正在编辑的记录相关的选项。
例如,如果我打开一条记录进行编辑,并且表中保存的值为“ 3”,则我希望“ 3”出现在下拉列表中。无论保存到表中的实际值是多少,还是始终显示为“ 1”(在下面的示例中选择),我总是会看到第一个选项。有人可以给我一些指示吗?我想使用jquery来做到这一点。
<select name="itemst" id="itemst">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
选择从表中获取必要的字段 其中i.item_description = d.id和i.id ='“。$ _ GET ['id']。”'“;
这很好。如果我想单独显示与该下拉列表相关的特定记录/行的字段内容,则可以。例如,echo $ r_item ['item_status']。这很好。我只需要能够在编辑表单打开并显示下拉菜单时从db显示中获取该值。
答案 0 :(得分:1)
您必须在HTML中设置所选属性。
在PHP中,您可以执行此操作(在for / foreach循环内部):
<option value="1" <?=$row['yourData'] == '1' ? ' selected="selected"' : '';?> >1</option>
答案 1 :(得分:0)
我使用以下方法使其工作。感谢您的建议。
$status = $r_item['item_status'];
<select id="item_status" name="item_status">
<option value="" <?php if (!empty($status) && $status == '' ) echo 'selected = "selected"'; ?>></option>
<option value="1" <?php if (!empty($status) && $status == '1') echo 'selected = "selected"'; ?>>1</option>
<option value="2" <?php if (!empty($status) && $status == '2') echo 'selected = "selected"'; ?>>2</option>
<option value="3" <?php if (!empty($status) && $status == '3') echo 'selected = "selected"'; ?>>3</option>
</select>
另一种解决方案
以上方法有效,但此后我对其进行了以下更新:
$status = $r_item['item_status'];
<select name="item_status" id="item_status">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
使用JQuery的以下行:
$('#item_status').val('<?=$r_item['item_status'];?>');
并且在我的标头中包含了jquery引用。
答案 2 :(得分:-1)
如果我正确理解您正在使用的是编辑表单,并且您正在编写 n ,则此字段需要显示数据库中记录(行)的特定列的值<option>
用于<select>
标签,您可以这样做。
在示例中,该字段将被称为“ numeric_field”(在数据库中)
$options = [1,2,3,4,5,6]; // i guess your options are hardcoded or from a table
// with the different options for a record
$dbRecord = function_that_returns_the_data_of_the_row_with_the_id($id);
echo "<form action="#"...>";
echo "<input.....>"; //Guess your record has other values
echo "<input.....>"; //
echo '<select name="itemst" id="itemst">'; //select
//for the options
foreach($options as $option){
if($dbRecord["numeric_field"] == $option){
echo '<option value="$option" selected>$option</option>';
//this is the selected option for the db record
} else {
echo '<option value="$option">$option</option>';
}
}
echo '</select>';
//add any other input you need
echo '<input...>';
echo '</form>';
希望我的回答对您有所帮助。