我有这个功能来生成数据
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}"," {id:5106,text:KAB。 BANGLI}"," {id:5108,text:KAB。 BULELENG}"," {id:5104,text:KAB。 GIANYAR}"," {id:5101,text:KAB。 JEMBRANA}"," {id:5107,text:KAB。 KARANGASEM}"," {id:5105,text:KAB。 KLUNGKUNG}"," {id:5102,text:KAB。 TABANAN}"," {id:5171,text:KOTA DENPASAR}"]
我希望上面的那些值会显示在我的下拉列表中: 这是代码:
<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>
我该如何解决这个问题。
答案 0 :(得分:0)
我不知道什么样的对象/数组select2
期望,但它看起来像你从php发送的json,没有得到解析。
首先,你应该改变它:
$.ajax({
url: baseUrl,
// set the dataType so that jQuery will parse the json automatically
dataType: 'json',
data: kota,
success: function(datas){
console.log(datas);
...
现在您将向select2
发送一个对象数组,这可能非常接近您的需要。
答案 1 :(得分:0)
您需要从PHP返回JSON响应,并且需要在AJAX请求中指定JSON数据类型。
所以你的PHP代码看起来像这样,
public function ajax_get_kota($idProv='')
{
$kota = $this->registrasi_model->get_nama_kota($idProv);
$data = array();
header('Content-Type: application/json');
echo json_encode(array_values($kota));
}
AJAX看起来像这样,
$.ajax({
url: baseUrl,
data: kota,
dataType: 'json',
success: function(datas){
// alert(datas);
$(".dropKota").select2({
placeholder: "Pilih Kota",
data: datas //the data loads here
}); },
error: function (xhr, ajaxOptions, thrownError) {
alert("error");
}
});
答案 2 :(得分:0)
不太了解php,但对我来说代码:
$("#dropdownId").select2("val", "your value");
正在jsp页面(java web项目)中使用jquery js在select2下拉列表中选择一个值。