这是我的剧本:
<script>
$(document).ready(function(){
$("#ID_Blangko").on("change", function() {
var blangko = $("#ID_Blangko").val();
var baseUrl = '<?php echo base_url(); ?>program/administrasi/blangko_rusak/ajax_jumlah';
$.ajax({
url: baseUrl,
data: {nama : blangko},
dataType: "json",
success: function(datas){
$("#Jumlah_Blangko").val(datas);
},
error: function (xhr, ajaxOptions, thrownError) {
$('#Jumlah_Blangko').val("some error.");
}
});
});
});
</script>
这是我的控制器代码:
public function ajax_jumlah($nama)
{
$this->db->select('Jumlah_Blangko');
$this->db->where('Nama_Blangko', $nama);
$result = $this->db->get('tb_blangko');
$amount = $result->row()->Jumlah_Blangko;
return json_encode($amount, JSON_NUMERIC_CHECK);
}
我已经仔细检查了onchange功能,并且控制器功能运行良好且返回值。问题是我无法将此值传递给我的ajax代码并将其打印在输入表单上。这是我的HTML:
<?php echo form_open($form_action, array('id'=>'myform', 'class'=>'myform', 'role'=>'form')) ?>
<div class="row">
<div class="col-md-6">
<?php
$atribut_blangko = 'class="form-control" id="ID_Blangko"';
$selectedBlangko = $values->ID_Blangko;
echo form_dropdown('ID_Blangko', $dropdown_Blangko, $selectedBlangko, $atribut_blangko);
?>
</div>
<div class="col-md-6">
<?php echo form_input('Jumlah_Blangko', '', 'id="Jumlah_Blangko" class="form-control" placeholder="Jumlah" maxlength="50" readonly="true"') ?>
</div>
</div>
<?php echo form_close() ?>
更新#2 ,这解决了我的问题
这个控制器功能我直接从http://localhost/amc/program/administrasi/blangko_rusak/ajax_jumlah/Malaysia
的浏览器URL访问
我发现了
return json_encode($amount, JSON_NUMERIC_CHECK);
这不起作用然后我改为:
echo json_encode($amount, JSON_NUMERIC_CHECK);
这项工作
我不知道这是怎么可能的,任何人都可以解释一下?
答案 0 :(得分:1)
我认为
var blangko = ID_Blangko.value;
应该是
var blangko = $('#ID_Blangko').val();
或
var blangko = $(this).val();
修改强>
控制器/操作没有看到变量的问题可能是因为它期望params而不是像大多数框架那样的查询字符串变量。这样的事情可以帮助你
var baseUrl = '<?php echo base_url(); ?>program/administrasi/blangko_rusak/ajax_jumlah/' + blangko;
答案 1 :(得分:1)
请检查代码中的第3行,它应该是“$(”#ID_Blangko“)。val()”而不是“$(”#ID_Blangko“)。val”
<强>解释强>
在上面的代码行中你期望获得id为“ID_Blangko”的元素的值并且你正在使用jQuery,但这里的主要内容是“val”是一个函数而不是变量所以你只能通过说“$(”#ID_Blangko“)。val”来访问该值,因为它查找名为'val'的属性