【问题标题】:Select2 - incorrect selected value with mysql dataSelect2 - 使用 mysql 数据选择的值不正确
【发布时间】:2015-08-05 01:10:47
【问题描述】:

我使用Select2 作为我的下拉选项。我正在使用 MySQL 数据将其填充到表格形式中,并且该表格位于引导模式中,以及用于编辑或删除的按钮。

<div class="btn-group">
    <a class="btn btn-primary" href="#"><i class="fa fa-home"></i> Area</a>
    <a class="btn btn-primary dropdown-toggle" data-toggle="dropdown" href="#">
        <span class="fa fa-caret-down"></span></a>
        <ul class="dropdown-menu">
        <?php
        echo "<li><a class=\"open-EditRow\" data-areano=\"".$areano."\" data-area=\"".$area."\" data-centerno=\"".$centerno."\" title=\"Edit this row\" \"><i class=\"fa fa-pencil\"></i> Edit</a></li>";
        echo "<li><a class=\"open-DeleteRow\" data-areano=\"".$areano."\" data-area=\"".$area."\" data-centerno=\"".$centerno."\" title=\"Delete this row\" \"><i class=\"fa fa-trash\"></i> Delete</a></li>";
        ?>
        </ul>
</div>

然后编辑按钮将打开一个模态来编辑详细信息。

<div class="form-group">
  <label class="col-sm-3 control-label">Center</label>
  <div class="col-sm-5">
  <?php                         
    $e = mysql_query("select * from center") or die(mysql_error());
  ?>
    <select class="populate placeholder" name="center" id="center">
        <option value="">-- Select a center --</option>
        <?php
        while($f=mysql_fetch_array($e))
        {
            ?>
            <option value="<?php echo $f['center_no']; ?>" <?php if ($f['center_no']==$centerno) { ?>selected<?php } ?>><?php echo $f['center']; ?></option>
            <?php
        }
        ?>
    </select>
  </div>
</div>

这就是我将数据传递给 Modal 的方式:

$('.open-EditRow').click(function(){
   var areano = $(this).attr('data-areano');
   var area = $(this).attr('data-area');
   var centerno = $(this).attr('data-centerno');
   $('#myModal #areano').val(areano);
   $('#myModal #area').val(area);
   $('#myModal #center').val(centerno);
   $('#myModal').modal('show');
});

还有 Select2 代码:

function DemoSelect2(){
    $('#center').select2();
}

但 Select2 显示的选择值不正确。它显示查询生成的第一项,而不是选定的值。

但是在单击 Select2 下拉菜单时,所选项目会正确突出显示。

这里似乎有什么问题?任何指导将不胜感激。

【问题讨论】:

  • 您能否扩展您的问题以包括正在生成的 HTML 的 sn-p?问题可能出在 HTML 中,但也可能是您在调用 val() 后没有触发 change 事件。

标签: php mysql twitter-bootstrap jquery-select2


【解决方案1】:

我为此做的解决方法是首先删除用于比较数据的 if 语句。所以我的选择看起来像这样:

<option value="<?php echo $f['center_no']; ?>"><?php echo $f['center']; ?></option>

然后我在function DemoSelect2()上声明了选定的值

function DemoSelect2(){
    var centerno = $(this).attr('data-centerno');
    $('#center').select2("val", centerno);
}

现在,我的 Select2 下拉菜单如下所示:

单击下拉菜单后,它会突出显示正确的选定值:

我不知道这是否是正确的解决方法,但这对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-05
    • 2019-01-14
    • 2012-11-01
    • 2021-02-05
    • 1970-01-01
    • 2020-12-29
    相关资源
    最近更新 更多