使用已定义的脚本将动态数据从控制器传递到视图,该脚本使用该动态数据来加载php视图

时间:2019-06-14 07:22:18

标签: php jquery codeigniter

我是MVC的新手,正在两方之间建立视频通话设施,其中管理员安排了两方之间的通话,并将随机生成的房间号存储在表中。

首先要了解一些背景,有一些患者和一个医生。管理员安排他们之间的通话。每当患者或医生首先单击视频呼叫时,Ajax查询都会调用一个函数,并使用日程表中的ID来检查患者/医生的条目,如果存在,则会调用视频聊天视图。

因此,要设置视频通话,我在视图页面中使用了一个脚本,该脚本会随机生成一个房间号(在这里,我需要从表格中获取该房间号,而不是随机生成一个房间号)。我需要一些帮助。我只是无法直接通过控制器直接调用网页,而无需传递房间号。

我尝试将房间号传递给控制器​​,但似乎无法正常工作,由于php网页的工作方式,我对如何执行它感到完全困惑 任何帮助将不胜感激。

第一-这是我为患者查看的页面,其中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是我的控制器,checkpatientvideochat是它的功能。这是功能内的控制器


    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 :(得分:0)

在这里您通过了<Ctrl>+<Shift>+<Alt>+I这是字符串,但是作为响应,您已经检查了echo '1'这是整数

在控制器中

response == 1

在脚本中

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';

    }

如果不是原因,请说明是否在checkpatient()函数中打印了案例ID