php - 使用所选值填充 select2 下拉列表
问题描述
我正在使用 PHP 脚本来编辑存储在我的数据库中的数据。数据与动态行一起存储。
在我的脚本中,我还使用了 Select2 脚本,它可以在我的下拉列表中进行搜索。
我用来填充的 Ajax 脚本如下:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
function getName<?php echo $m; ?>() {
$.ajax
({
type: 'POST',
url: './get/name/get1.php',
dataType: 'text',
cache: false,
success: function(data){
$('#name<?php echo $m; ?>').html(data);
},
complete: function(){}
});
}
$(document).ready(function(){
getName<?php echo $m; ?>();
});
</script>
在get1.php
我使用以下语句来选择数据:
SELECT internal_id, name FROM scu_stock
scu_stock 表有以下数据:
-------------------------
| internal_id | name |
| 1 | One |
| 2 | Two |
| 3 | Three |
| 4 | Four |
-------------------------
我想表示为的selected value
值存储在另一个表中。scu_address
---------------------------------------
| id | city | country | internal_id |
| 6 | aa | ww | 1 |
| 7 | bb | xx | 2 |
| 8 | cc | yy | 3 |
| 9 | dd | zz | 4 |
---------------------------------------
当我打开时,index.php?id=8
我想查看表 scu_stock 中的数据以及在 scu_address 表中调用的选定值。
有人知道我怎么能意识到这一点吗?
这是我的完整代码:
<?php
$statement = $connect->prepare("SELECT * FROM scu_address WHERE id = :id");
$statement->execute(
array(
':id' => $_GET["id"]
)
);
$item_result = $statement->fetchAll();
$m = 0;
foreach($item_result as $sub_row)
{
$m = $m + 1;
?>
<tr id="row_id_<?php echo $m; ?>">
<td><label for="name">Name</label></td>
<td><select style="width:100%" id="name<?php echo $m; ?>" name="name[]" data-srno="<?php echo $m; ?>"></select></td>
<script type="text/javascript" src="../../../../vendors/select2/dist/js/select2.min.js"></script>
<script type="text/javascript">
$.fn.select2.defaults = $.extend($.fn.select2.defaults, {
allowClear: true,
closeOnSelect: true,
value: 'Name',
minimumResultsForSearch: 15
});
$(document).ready(
function () {
var configParamsObj = {
placeholder: 'Name',
minimumResultsForSearch: 3
};
$("#name<?php echo $m; ?>").select2(configParamsObj);
});
</script>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script>
function getName<?php echo $m; ?>() {
$.ajax
({
type: 'POST',
url: './get/name/get1.php',
dataType: 'text',
cache: false,
success: function(data){
$('#name<?php echo $m; ?>').html(data);
},
complete: function(){}
});
}
$(document).ready(function(){
getName<?php echo $m; ?>();
});
</script>
</tr>
<?php
}
?>
解决方案
要使用从数据库中获取的选定值填充 select2 文本框:
- 创建PHP变量以填充获取的数据
$selecteddata = " ";
然后填充它以获得以下格式$selecteddata .="'1','2','3','4'";
在 select2 代码之后添加以下脚本:
<script>
$('#select2ID').val([<?php echo $selecteddata ;?>]);
$('#select2ID').trigger('change');
</script>
这样,您将只选择您获取的数据,以便您进行编辑。