我正在尝试将已保存的值保存到数据库并在选择框中显示。 选择框中的项目将从数据库中填充。
<select id="sel2" name="sel2">
<option value="">---</option>
<?php
require("connection.php");
$res = mysqli_query($conn, "SELECT field FROM table");
while($row = $res->fetch_assoc()){
echo "<option value='".$row['field']."'>'".$row['field']."'</option>";
}
?>
</select>
现在,当我尝试这样做时,
$('#btn2').click(function(){
var x = "field1";
$('#sel2').val(x);
});
x的值不会出现在选择框中。但是当项目不是从数据库中获取时,
<select id="sel2" name="sel2">
<option value="">---</option>
<option value="field1">field1</option>
<option value="field2">field2</option>
<option value="field3">field3</option>
</select>
jquery有效。
我不知道我在这里缺少什么。你能帮我这个吗?当从数据库中填充项目时,如何设置选择框的选定值(来自之前选择的数据库)?
我从数据库中获取选择框的项目,因为它们太多了。请帮忙。
答案 0 :(得分:1)
问题是在从数据库中提取字段之前正在执行jquery代码。因此,语句$('#sel2').val(x);
无法设置值x
,因为此时,选择下拉列表中不存在x
字段。
如果不确定,请尝试在jquery点击功能中使用超时,以检查我所说的内容是否正确。
让我知道它是否有效。
答案 1 :(得分:0)
尝试使用此功能,似乎您有一个额外的单引号
echo "<option value='".$row['field']."'>".$row['field']."</option>";
答案 2 :(得分:0)
试试这个..
$('#btn2').click(function(){
var x = 'field1';
$("#sel2").val(x);
$("#sel2").trigger("chosen:updated");
});