Функция Call Controller из jQuery - PullRequest
0 голосов
/ 03 июня 2019

Я работаю над некоторыми кодами.Вот мой код

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 Помощник также был автоматически добавлен в 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 и повторяется:

x =, num =

Кажется, что глобальное свойство неработать для функции, вызываемой из JS / jQuery.Любое объяснение или решение для этого?

Ответы [ 2 ]

0 голосов
/ 09 июня 2019

Вам нужен вызов ajax.В вашем View файле

<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, не будет выполнять перенаправление.Если вы хотите перенаправить на другой URL, вы должны сделать это в разделе Javascript, используя

0 голосов
/ 03 июня 2019

Вы можете получить доступ к функции контроллера со страницы просмотра, используя базовый 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);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...