Вызов AJAX не работает в Codeigniter и как перезагрузить страницу / обновить ajax условно - PullRequest
0 голосов
/ 08 января 2019

Я пытаюсь проверить состояние транзакции с некоторым удаленным сервером, используя их API. Я хочу, чтобы в результате моего вызова ajax, если я получил 1 или 4 в качестве ответа от контроллера, текущая страница / представление должны быть перезагружены, и ajax должен прекратить запуск, в противном случае тот же самый ajax должен запускаться повторно после каждого 5 секунд, пока я не получу 1 или 4 в ответ от контроллера.

Примечание: значения 1 и 4 возвращаются из функции модели имя fetchdetails для функции контроллера.

Ниже приведен код функции моего контроллера:

$data["pdstat"]=$this->public_m->fetchdetails($paymentid);
echo json_encode(array('resp'=>$data["pdstat"]));

Ниже приведен код в моем представлении:

echo "<div class='alert alert-primary'>Please wait. Verification under process.</div>";
echo "<script type='text/javascript'>
    var recall = function(event) {
            $.ajax({
                    type: 'post',
                        url: '".base_url()."PDetails/".$this->session->payment_id."',
                        dataType: 'json',
                        success: function(res){
                        if(res) {
                            var rcode=0;
                            var len=res.length;
                            for(var i=0; i<len; i++)
                            {
                                rcode=res[i]['resp'];
                            }
                            if(rcode=='1' || rcode=='4')
                            {
                                console.log('reloading');
                                window.location = window.location.href;
                            }
                            else if(rcode=='3' || rcode=='5')
                            {
                                console.log('recalling');
                                recall();
                            }
                        }
                        else
                        {
                            console.log('recalling');
                        recall();
                        }
                        },
                        error: function(res, status, error) {
                            var err = res.responseText;
                            console.log(res.Message);
                            console.log(status);
                            console.log(error);
                            console.log('recalling');
                               recall();
                        }
                    });
        };
    recall();
  </script>";

Я проверил страницу и проверил вкладки Консоль и Сеть. Вызов ajax вообще не был инициирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...