【问题标题】:Set/show the selected/saved value(from database) to a select box for editing purposes将选择/保存的值(来自数据库)设置/显示到选择框以进行编辑
【发布时间】:2016-09-22 04:18:02
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: javascript php jquery html


    【解决方案1】:

    问题是 jquery 代码在从数据库中获取字段之前正在执行。因此,$('#sel2').val(x); 语句无法设置值x,因为当时选择下拉列表中不存在x 字段。

    如果不确定,请尝试在 jquery click 函数中使用超时,以检查我所说的是否正确。

    让我知道它是否有效。

    【讨论】:

    • 嗨,Harshil,我得到了见解,但它似乎不起作用。 setTimeout(function(){ $('#sel2').val(x); });在点击功能内。嗯,x 的实际值将来自 ajax 调用的返回数据。
    • 我的意思是 setTimeout(function(){ $('#sel2').val(x); }, 2000);它对我不起作用。
    • 将jquery代码放在ajax调用函数的回调中
    • 嘿兄弟。我发现了问题。我正在使用 select2.js。这就是代码没有成功的原因。我知道为什么。我想我暂时不会使用它。但无论如何,谢谢,当我删除指向 select2.js 的链接时,你的想法有效。谢谢兄弟!
    【解决方案2】:

    尝试使用这个,似乎你有一个额外的单引号

    echo "<option value='".$row['field']."'>".$row['field']."</option>";
    

    【讨论】:

      【解决方案3】:

      试试这个..

      $('#btn2').click(function(){
          var x = 'field1';
          $("#sel2").val(x);
          $("#sel2").trigger("chosen:updated");
      });
      

      【讨论】:

      • 您好,这里x的值实际上是来自ajax调用返回的数据。我应该把.trigger放在哪里?什么是“选择:更新”?谢谢。
      • jQuery.ajax({ success: function(data) { // 你必须这样做 } });
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-06
      • 2019-11-25
      • 2019-08-24
      • 1970-01-01
      • 2018-12-01
      相关资源
      最近更新 更多