【问题标题】:Passing $data variable to iframe from controller in CodeIgniter将 $data 变量从 CodeIgniter 中的控制器传递给 iframe
【发布时间】:2015-05-21 10:06:30
【问题描述】:

我想在 iframe 中显示一个页面。此页面包含email 内容,因为我正在构建一个内置的电子邮件系统。但是电子邮件内容的CSS 覆盖了我的CSS 样式。现在这个页面从我通过控制器传递的$data 变量中获取一些数据。

为了避免出现我的CSS 样式问题,我正在考虑在 iframe 中显示该页面。 (如果有人有其他解决方案,欢迎)。

inboxdetailspage.php --> View which displays email contents
mailactions.php  --> controller which passes $data to inboxdetailspage.php

这是执行此操作的函数。

function viewInboxDetails(){
        $mailId            = $this->uri->segment('4');
        $data['emailInfo'] = $this->fetchParticularEmailInfo($mailId);
        $data['titleText'] = 'Email Information';


        $this->load->view('admin/inboxdetailspage',$data);

    }

我对如何实现这个功能一无所知

【问题讨论】:

    标签: javascript php codeigniter iframe


    【解决方案1】:

    无法将数据从同一控制器传递给IFRAME。
    IFRAMEs' 基本上只是特定页面上的另一个 URL 显示。因此,您所能做的就是通过 URL 传递数据,仅此而已!
    如何实现这一点是通过从 URL 中获取 ID 并在 iFrame 中显示该 URL 创建另一个(例如)链接以显示邮件内容。例如,

    控制器:

    public function all_mails()
    {
        $data['mails'] = $this->xyz_model->get_mails();
    
        $this->load->view('all_mails.php', $data);
    }
    
    public function mail_content($mail_id)
    {
        $data['mail'] = $this->xyz_model->get_mail_content($mail_id);
    
        $this->load->view('mail_content.php', $data);
    }
    


    查看:

    all_mails.php

    <?php foreach($mails as $mail) { ?>
    
       <table>
           <tr>
               <td><?php echo $mail->from; ?></td>
               <td><?php echo $mail->subject; ?></td>
               <!-- Your email content  -->
               <td>
                   <iframe src="/xyz/mail_content/<?php echo $mail->id; ?>"></iframe>
               </td>
           </tr>
       </table>
    
    <?php } ?>
    

    mail_content.php

    <!-- Your CSS here  -->
    <link href="/static/home/css/bootstrap.min.css" rel="stylesheet">
    
     <div>
         <?php echo $mail->content;  ?>
     </div>
    

    【讨论】:

      【解决方案2】:

      首先将 $data 传递给您的视图,然后从那里调用另一个控制器,该控制器可以从它自己的视图中渲染您的整个 iframe。

      【讨论】:

        【解决方案3】:

        在视图中创建一个 iframe,链接到控制器中的另一个函数(一个新页面)。在此页面中,仅根据电子邮件显示电子邮件内容。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-10-24
          • 1970-01-01
          相关资源
          最近更新 更多