我有这个功能,以产生这样SELECT2不显示数据的阵列正确
[返回值数据
public function ajax_get_kota($idProv='') { $kota = $this->registrasi_model->get_nama_kota($idProv); // echo json_encode(array_values($kota)); $data = array(); foreach($kota as $k){ $data[] = '{id:'.$k->id_kab.','.'text:'.$k->nama.'}'; // echo "{id: $k->id_kab, text: '$k->nama'}"; } echo json_encode(array_values($data)); }
“{ID:5103,文本:KAB BADUNG}”,“ {编号:5106,文本:KAB邦利} “”{编号:5108,文本:KAB布莱伦} “”{编号:5104,文本:KAB吉安雅} “”{编号:5101,文本:KAB 。JEMBRANA} “”{编号:5107,文本:KAB卡朗阿森} “”{编号:5105,文本:KAB KLUNGKUNG} “”{编号:5102,文本:KAB达巴南} “”{ID :5171,文本:登巴萨市}“]
,我想这些价值观上面会在我的下拉列表中显示: 下面的代码:
<div class="form-group form-group-sm has-feedback <?php set_validation_style('Kota')?>">
<?php echo form_label('Kota/Kabupaten', 'kota', array('class' => 'control-label col-sm-2')) ?>
<div class="col-sm-3">
<?php
$atribut_kota = 'class="form-control dropKota"';
echo form_dropdown('Kota', $namaKota, $values->Kota, $atribut_kota);
set_validation_icon('Kota');
?>
</div>
<?php if (form_error('Kota')) : ?>
<div class="col-sm-9 col-sm-offset-3">
<?php echo form_error('Kota', '<span class="help-block">', '</span>');?>
</div>
<?php endif ?>
<script>
$(document).ready(function() {
$(".dropProv").on("change", function(){
var idProv = $(this).val();
var baseUrl = '<?php echo base_url(); ?>program/administrasi/registrasi/ajax_get_kota/'+idProv;
var kota = [];
$.ajax({
url: baseUrl,
data: kota,
success: function(datas){
console.log(datas);
$(".dropKota").select2({
placeholder: "Pilih Kota",
data: datas //the data loads here
}); },
error: function (xhr, ajaxOptions, thrownError) {
alert("error");
}
});
});
});
</script>
</div>
我如何解决这个问题。
如果我使用'数据类型:“json''所有数据会变成into' [对象的对象]'。我刚发现'select2'使用数组format' ID:123,名称:abc'所以,如果我改变''id_kab' id'和'name' into' name',并把数据在选择2功能会工作。但这些数据是从数据库中我怎么格式化,所以'select2'可以接受? – HealMee
@HealMee这就是为什么我用'的console.log()''而不是警报()'。关于数据的内容,你只需要循环在PHP你'$ kota'变量和正确的键右边的元素添加到新阵列。该阵列可以'json_encode'并发送回的JavaScript。 – jeroen
我用'的console.log()'和更新了我的代码,现在我需要摆脱'“''这之间。” {'从生成的数据。我该怎么做呢? – HealMee