我在"我的帐户"中有两个选择字段(国家/地区和州)。自动填充国家/地区的用户表单和来自countries.js的州列表。这很好用 但每当用户打开他的帐户详细信息(如亚马逊)时,我希望用数据库中的当前值填充相应的字段(因为这些是活动输入字段,用户也可以更改值)。我这样做是通过回显输入字段中的值,如(见下面的代码)
<input type="text" class="form-control" id="tgender" name="tgender" value="<?php echo "$trainer_gender"?>" >
这里是代码
但这对国家和州来说并不起作用。如果我回应国家和州的字段值,那么国家/地区的下拉不起作用(如果用户想要更改或是第一次用户)
答案 0 :(得分:0)
与文本输入字段相比,选择框的值设置不同。
您要搜索的内容是selected
代码的<option>
属性(请参阅https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option)。
无论您在何处构建国家/州的选择框,都需要迭代该列表,并检查当前迭代值是否与数据库中的迭代值匹配。
例如:
<select name="state">
<option value=''>SELECT</option>
<?php
$conn = mysqli_connect('localhost', 'root', '');
$result = mysqli_query($conn, 'SELECT id, name FROM states');
while ($row = mysqli_fetch_assoc($result))
{
$selected = ($stateFromDB == $row['name']) ? 'selected' : '';
echo "<option value='$row[id]' $selected >$row[name]</option>";
}
?>
</select>
您也可以通过Javascript选择正确的值,例如通过使用jQuery:
$("#state-list").val("Your State from DB");