CodeIgniter根据输入日期获取星期显示到文本框的代码排错
问题说明
需要实现的功能:根据用户输入的日期,自动计算对应星期值并填充到指定文本框中。以下是编写的相关代码,目前功能无法正常运行。
前端AJAX逻辑代码
$("#date").change(function(){ $.ajax({ url : "<?php echo base_url();?>daftar/get_day", method : "POST", data : {date: $("#date").val()}, async : false, success: function(data){ $("#day").val(day); } }); });
CodeIgniter控制器代码
function get_day() { $date=$this->input->post('date'); $this->load-model('daftarmodel'); $day = $this->daftarmodel->geDay($date); echo $day; }
CodeIgniter模型代码
function getDay($date){ $timestamp = strtotime($date); $day = date('D', $timestamp); var_dump($day); return $day; }
存在的错误
代码一共有4处直接导致功能失效的问题:
- 前端回调变量名错误:AJAX请求成功后,后端返回的内容存在于回调函数的入参
data中,代码赋值时使用了未定义的变量day,正确写法应为$("#day").val(data); - 控制器加载模型语法错误:CodeIgniter框架加载模型的正确写法是
$this->load->model('daftarmodel'),代码中将对象操作符->错写为连字符-,会直接触发PHP语法错误,中断请求 - 控制器调用模型方法名拼写错误:模型中定义的获取星期的方法名为
getDay(),控制器调用时错写为geDay(),漏写了字母t,会触发调用不存在方法的致命错误 - 模型多余调试输出污染返回值:模型中写了
var_dump($day)调试语句,该语句会输出带变量类型、长度的结构化内容(例如输出string(3) "Tue"),和后续echo $day的内容拼接后,返回给前端的不是纯星期字符串,会导致文本框填充内容异常,需要删除该行调试代码
内容的提问来源于stack exchange,提问作者yehuda satrio
相关产品推荐
相关产品推荐

