簡體   English   中英

從jQuery調用Controller函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM