根据选定的数据库记录设置下拉列表的值

nr7wwzry  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(451)

使用html和php,我在页面上选择并显示mysql数据库中的记录。当我单击一条记录时,它会打开一个编辑窗口。此新窗口显示所选记录的所有内容,并且可以更新所有内容。然后将更新保存到此记录的数据库中。
我的问题是:其中一个字段作为下拉列表显示在编辑窗口中。下拉列表使用页面上的select填充(类似于下面)。当我单击某个特定记录以打开“编辑”窗口时,我总是看到下拉列表中的第一个选项,而不是与该记录关联的选项。
我需要能够看到从下拉列表,是连接到我正在编辑的记录选项。
例如,如果我打开一条记录来编辑它,并且表中保存的值是“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>

select正在从i.item_description=d.id和i.id='.$\u get['id']的表中获取必要的字段;
这个很好用。如果要单独显示连接到此下拉列表的特定记录/行的字段内容,可以。例如,echo$r\u item['item\u status']。这个很好用。当编辑窗体打开并显示下拉列表时,我只需要能够从db显示这个值。

bprjcwpo

bprjcwpo1#

必须在html中设置所选属性。
在php中,可以执行以下操作(在for/foreach循环中):

<option value="1" <?=$row['yourData'] == '1' ? ' selected="selected"' : '';?> >1</option>
wgxvkvu9

wgxvkvu92#

我用下面的方法让它工作。谢谢你的建议。

$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引用。

hlswsv35

hlswsv353#

如果我理解正确,那么您正在处理一个编辑表单,并且如果您正在写入n,那么这个字段需要显示数据库中记录(行)的特定列的值 <option> 对于 <select> 你可以这样做。
例如,该字段将被称为“numeric\u 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>';

希望我的回答对你有帮助。

相关问题