将选择/保存的值(从数据库)设置/显示到一个选择框中,以便进行编辑


Set/show the selected/saved value(from database) to a select box for editing purposes

我试图得到我保存到数据库的值,并在一个选择框中显示它。选择框中的项是从数据库中填充的。

<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");
});