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

时间:2016-09-22 04:18:02

标签: javascript php jquery html

我正在尝试将已保存的值保存到数据库并在选择框中显示。 选择框中的项目将从数据库中填充。

<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有效。

我不知道我在这里缺少什么。你能帮我这个吗?当从数据库中填充项目时,如何设置选择框的选定值(来自之前选择的数据库)?

我从数据库中获取选择框的项目,因为它们太多了。请帮忙。

3 个答案:

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