Select2 - 选择的值不正确 mysql 数据

Select2 - incorrect selected value with mysql data

我使用 Select2 作为我的下拉选项。我用 MySQL 数据在 table 表单中填充它,表单在 bootstrap 模态框内,连同要编辑或删除的按钮。

<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>

这是我将数据传递给模态框的方式:

$('.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 下拉菜单时,所选项目会正确突出显示。

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

我为此做的解决方法,它以某种方式工作是首先删除用于比较数据的 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 下拉菜单如下所示:

点击下拉菜单后,它突出显示了正确的选择值:

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