我试图得到我保存到数据库的值,并在一个选择框中显示它。选择框中的项是从数据库中填充的。
<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工作。
我不知道我在这里错过了什么。你能帮我一下吗?当从数据库中填充项目时,如何设置选择框的选定值(来自之前选择的数据库)?我正在从数据库中获取选择框的项目,因为它们太多了。请帮助。
的问题是,jquery代码正在执行之前的字段从数据库中获取。因此,语句$('#sel2').val(x);
不能设置值x
,因为此时,select下拉框中没有x
字段。
如果不确定,请尝试在jquery click函数中使用超时来检查我所说的是否正确。
尝试使用这个,似乎你有一个额外的单引号
echo "<option value='".$row['field']."'>".$row['field']."</option>";
试试这个…
$('#btn2').click(function(){
var x = 'field1';
$("#sel2").val(x);
$("#sel2").trigger("chosen:updated");
});