[英]Call Controller function from jQuery
我正在研究一些代碼。 這是我的代碼
jQuery的
duration = 30;
var countdown = setInterval(timer,1000);
var url = window.location.origin + '/pro/index.php/Test';
function timer(){
duration = duration - 1;
if(duration<=0){
clearInterval(countdown);
window.location(url+'/next');
}
}
我想在Test/next
重定向並運行函數。 在next()
方法中,它將統計鏈接應該去的位置。 url
helper也已在Loader
自動添加
調節器
public $num;
public $val;
public function index(){
// get the value from GET method
$this->num = $this->input->get('num');
$this->val = $this->input->get('val');
}
public function next(){
$x = $this->num;
$x = $x + 1;
if($x < 4){
redirect(site_url('index.php/Test?x='.$x/.'&num='.$this->num));
}
else{
// it will redirect to another page
// redirect(site_url('index.php/Home'));
echo 'x = '.$x.', num = '.$this->num;
}
(上面的代碼已經簡化)。
該方法已經運行,但是url是localhost/pro/index.php/Test/next
和echo-ing:
x =,num =
似乎全局屬性對於從JS / jQuery調用的函數不起作用。 對此有何解釋或解決方案?
您可以從視圖頁面訪問控制器功能到使用基本URL( 單擊此處如何操作? )。 然后使用jQuery Ajax調用控制器函數。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
$.ajax({
type: 'post', url: '<?php echo base_url("next");?>',
data: {},
success: function(result){
console.log(result);
}
});
你需要ajax調用。 在您的視圖文件中
<button class="call_ajax" name="submit">Call Ajax</button>
<script type="text/javascript">
$('.call_ajax').click(function(){
var value1 = 'some data';
var value2 = 'some data';
$.ajax({
url: '<?php echo site_url('your_controller/your_function'); ?>',
type: 'POST',
data: {
key1: value1,
key2: value2
},
dataType: 'json',
success: function(url) {
window.location.href = url;
}
});
});</script>
在您的控制器中
your_function(){
$data1 = $this->input->post('key1');
$data2 = $this->input->post('key2');
// do Data Processing
// For return some data ;
echo "https://some-webiste-url/";
// FOR Array
echo json_encode($any_data_array);
}
注意:從ajax調用的控制器函數不會執行重定向。 如果你想直接轉到其他網址,你必須在Javascript Section Using中這樣做
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.