我想使用Ajax通过post方法将变量从视图发送到控制器。我的代码不起作用。有人能帮我吗?
我的观点:变量随日期范围选择器而变化
var v_start_date = moment().subtract(7, 'days').format("YYYY-MM-DD HH:mm");
var v_end_date = moment().format("YYYY-MM-DD HH:mm");
...
//window.location.replace("<?php echo site_url('consum/ajax_excel');?>" + "/" + v_start_date + "/" + v_end_date);
$.ajax({
url: "<?php echo site_url('consum/ajax_excel')?>",
type: "POST",
dataType : "JSON",
data: {
start_date: v_start_date,
end_date: v_end_date
},
success:function(data) {
},
error : function(data) {
}
});
...
我的控制器:
public function ajax_excel() {
//$start_date = $this->uri->segment(5);
//$end_date = $this->uri->segment(6);
$start_date = $this->input->post('start_date');
$end_date = $this->input->post('end_date');
$this->load->library('excel');
$mobiledata = $this->consum->excel_list($start_date,$end_date);
$objPHPExcel = new PHPExcel();
...
我的型号:
public function excel_list($start_date,$end_date){
$this->db->select(array('date','consumator','produs','pret','cantitate','total','stare','utilizator'));
$this->db->from('consum as m');
if($start_date !="") if ($end_date !="") {
$this->db->where('date >=', $start_date);
$this->db->where('date <=', $end_date);
}
$this->db->order_by("date", "desc");
$query = $this->db->get();
return $query->result_array();
}
非常感谢!
在控制器中首次打印_r($_POST(,以确保没有拼写错误或是因为编码等原因。如果没有打印任何内容,请在config文件夹中检查routes.php。如果强制CI从特定路由进行路由,则可能需要定义新路由。