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 下拉菜单如下所示:
点击下拉菜单后,它突出显示了正确的选择值:
我不知道这是否是正确的解决方法,但这对我有用。
我使用 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 下拉菜单如下所示:
点击下拉菜单后,它突出显示了正确的选择值:
我不知道这是否是正确的解决方法,但这对我有用。