2016-07-05 69 views
1

我正在尝试使用jquery onchange。请看看:Onchange访问codeigniter函数

<script> 
$(document).ready(function() { 
    $("#reservation").change(function() { 
     var date = $("#reservation").val(); 
     $.ajax({ 
      url: '<?=base_url();?>home', 
      type: 'POST', 
      data: {date_search : date}, 
      success: function() { 
       location.reload(); 
      } 
     }); 
    }); 
}); 
</script> 

这里是我的控制器:

else if(isset($date_search)){ 
     $data['var'] = "Range Date"; 
     $explode = explode('-',$date_search); 
     $start_date = inggris_date($explode[0]); 
     $end_date = inggris_date($explode[1]); 
     $data['tgl'] = $this->modelmodel->showdata("select MONTH(tanggal) Tanggal from transaksi where (tanggal between '$start_date' and '$end_date')and outlet = '".$this->session->userdata('username')."' group by MONTH(tanggal)"); 
     $data['angka'] = $this->modelmodel->showdata("select TOP 12 (cash + cc + dc + flash + piutang + reject + disc50) total from transaksi where (tanggal between '$start_date' and '$end_date')and outlet = '".$this->session->userdata('username')."'"); 

} 
$view = 'dummy'; 
$this->go_to($view,$data); 

没有与我的查询没有问题。我能够得到结果。我的问题是,如何使用结果刷新我的页面,因为当我使用location.reload结果返回到default时。

我上面的功能是我的控制器的一部分。这里是我的功能的完整脚本http://pastebin.com/i5UeypGG

+0

您使用的引导工作? –

+0

如果您重新加载页面,那么通过ajax发送的数据将不可见。比为什么你需要重新加载页面。 –

+1

您只需要通过ajax成功来更新html元素,而该元素必须应用视图内容。一旦控制器返回一个视图应用结果数据使用** JQuery的html()**方法 –

回答

0

从现在开始。我改变了我的JQuery。我使用https://github.com/mgalante/jquery.redirect

<script> 
$(document).ready(function() { 
    $("#reservation").change(function() { 
     var date = $("#reservation").val(); 
     $.redirect('<?=base_url();?>home', {date_search : date}); 
     }); 
}); 
</script> 

而且这是我

0

在你的控制器中创建另一个函数将上述函数的当前逻辑放在它中,在函数中为ajax返回一个路径到新链接, 借助窗口。 ajax完成后的位置将重定向到新的控制器功能。

从我可以告诉你的函数只显示数据,因此它可能会更容易只使用一个简单的链接到一个新的控制器功能