Select2 Ajax 选定数据值

克罗斯范德

我想问一下如何从ajax中选择默认值到select2?我的ajax代码:

// Customer
$('.shipper').select2({
    placeholder: "Choose Shipper",
    selectionTitleAttribute: false,
    ajax: {
        url: 'getCustomer.php',
        dataType: 'json',
        data: function (params) {
            return {
                filter_name: params.term
            };
        },
        processResults: function (data) {
            return {
                results: $.map(data, function (obj) {
                    return {id: obj.customer_id, text: obj.name};
                })
            };
        },
        cache: true
    },
    initSelection: function (element, callback) {
        return callback({id: "<?php echo $data['customerId']; ?>", text: '<?php echo $shipper['name']; ?>'});
    }
});

虽然我获取数据的 PHP 代码是这样的:

<?php

include('config.php');
$json = array();

if (isset($_GET['filter_name'])) {
    $clientId = $_GET['filter_name'];
    $query = "SELECT * FROM m_customer WHERE c_name LIKE '%$clientId%' AND c_status > 0 ORDER BY c_name ASC LIMIT 0,10";
} else {
    $query = "SELECT * FROM m_customer WHERE c_status > 0 ORDER BY c_name ASC LIMIT 0,10";
}
$result = mysqli_query($conn, $query);
while ($row = mysqli_fetch_array($result, MYSQLI_ASSOC)) {
    $json[] = array(
        'customer_id' => $row['c_id'],
        'name' => strip_tags(html_entity_decode($row['c_name'], ENT_QUOTES, 'UTF-8')),
    );
}

echo json_encode($json);
?>

我正在为我的 PHP 文件创建更新页面。所以我需要从我的数据库中选择这个 select2。这就是为什么我从数据库中获取数据然后尝试设置为initSelection. 它已经出现并被选中。但是当我按下保存按钮(并从检查元素查看我的代码)时,选择没有价值。所以保存失败(附截图)

在此处输入图片说明

克罗斯范德

我有奇怪的解决方案:

我使用 DB 中的值和文本手动放置了 Option。完成!我的代码变成这样:

<select class="shipping form-control" name="shipping_id">
     <option value="<?php echo $data['shippingId']; ?>" selected><?php echo $shipping['name']; ?></option>
</select>

但是还有什么问题/原因吗?因为我认为这是一个奇怪的解决方案......(虽然它有效)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章