Передача динамических данных из контроллера в представление с помощью определенного сценария, который использует эти динамические данные для загрузки представления php - PullRequest
0 голосов
/ 14 июня 2019

Я новичок в MVC и работаю над функцией видеовызова между двумя сторонами, где администратор планирует вызов между двумя этими сторонами и сохраняет случайно сгенерированный номер комнаты в таблице.

Хорошо, сначала немного предыстории, есть несколько пациентов и доктор . Администратор планирует звонок между ними. Всякий раз, когда пациент или врач нажимают на видеовызов, сначала ajax-запрос вызывает функцию и проверяет, есть ли запись для пациента / врача, использующая их идентификаторы в таблице расписаний, и, если она есть, она вызывает представление видеочата.

Итак, чтобы настроить видеозвонок, я использовал скрипт на странице просмотров, который случайным образом генерирует номер комнаты (здесь мне нужно получить номер этой комнаты из таблицы, а не генерировать случайный). Мне нужно немного помощи здесь. Я просто не могу позвонить на веб-страницу напрямую, используя контроллер, не передав номер комнаты.

Я попытался передать номер комнаты контроллеру, но, похоже, он не работает, и я совершенно не понимаю, как его выполнить, из-за того, как работают php-страницы. Любая помощь будет оценена.

1-й - это моя страница просмотра для пациента, где метод ajax проверяет наличие записи, а затем открывает окно для видеочата


 $(document).on('click','#create_call', function(){

    var case_id=$(this).attr('class');
    $('#case_id_get').val(case_id);

    $.ajax({
            url: "<?php echo base_url('video/checkpatient');?>",
            type: "post",
            data: {case_id:case_id},
            success: function(response)
            {
                if(response==1)
                {
                    var newwindow = window.open('video/videochat');
                }
                else
                {
                    Messenger().post({
                        message: 'NO ENTRY FOUND',
                        type: 'error',
                        showCloseButton: true
                    });
                }
            }
        });


    });

video - мой контроллер, а checkpatient и videochat - его функции. Вот контроллер в функции


    public function videochat()
    {

            $views = array('video/webcam.php');
            $data = array('views'=>$views);
            $this->load->view('template/main',$data);
    }

    public function checkpatient()
    {
        $case_id = $this->input->post('case_id');
        $checkentry = $this->Call_Schedule->CheckPatientEntry($case_id);
        if($checkentry->num_rows()>0)
        {
            echo '1';
            exit;
        }
        echo '0';

    }

Как вы можете видеть, когда я звоню videochat, он открывает страницу с именем webcam.php, которая содержит мой скрипт для начала звонка.

<style>
    video {
  -webkit-transform: scaleX(-1);
  transform: scaleX(-1);
  }
  </style> 
  <div>
    <video id="localVideo" autoplay></video>
    <video id="remoteVideo" autoplay></video>
  </div>
<script>



hash = Math.floor(Math.random() * 0xFFFFFF).toString(16); 
const roomnumber = hash;
// Here I want the roomnumber to be used from the table not use the randomly generated number.

// other code to run the video call

Как я могу получить номер комнаты из таблицы, соответствующей пациенту / врачу?

1 Ответ

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

Здесь Вы передали echo '1', что является строкой, но в ответ вы проверили response == 1, что является int

в контроллере

public function checkpatient()
    {
        $case_id = $this->input->post('case_id');
        $checkentry = $this->Call_Schedule->CheckPatientEntry($case_id);
        if($checkentry->num_rows()>0)
        {
            echo '1';  // change to '1' to 1  string to int 
            exit;
        }
        echo '0';

    }

В скрипте

$.ajax({
            url: "<?php echo base_url('video/checkpatient');?>",
            type: "post",
            data: {case_id:case_id},
            success: function(response)
            {
                if(parseInt(response)==1) // change from stringt  to  int 
                {
                    var newwindow = window.open('video/videochat');
                }
                else
                {
                    Messenger().post({
                        message: 'NO ENTRY FOUND',
                        type: 'error',
                        showCloseButton: true
                    });
                }
            }
        });

Если причина не в этом, уточните, печатается ли идентификатор дела в функции checkpatient () или нет

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