【问题标题】:How to assign html code to variable in codeigniter?如何将html代码分配给codeigniter中的变量?
【发布时间】:2026-02-06 19:30:01
【问题描述】:

我想将一些 html 代码分配给变量,并且该变量在控制器中。

headerview.php

<header id="header" class="header">
        <div class="container">

            <!-- LOGO -->
            <div class="logo"><a href="<?php echo base_url()?>admin/Adminhome"><img src="<?php echo base_url()?>public/images/logo.png" alt=""></a></div>
            <!-- END / LOGO -->
            
                <!-- NAVIGATION -->
                <nav class="navigation">

                    <div class="open-menu">
                        <span class="item item-1"></span>
                        <span class="item item-2"></span>
                        <span class="item item-3"></span>
                    </div>

                    <!-- MENU -->
                    <ul class="menu">
                    
                        <?php if($isAdmin ){ ?>
                        
                            <?php 
                                if($title=='Dashboard'){
                            ?>
                            <li class="current-menu-item"><a href="<?php echo base_url()?>admin/Adminhome">Admin Dashboard</a></li>
                            <?php 
                                }else{
                            ?>
                            <li><a href="<?php echo base_url()?>admin/Adminhome">Admin Dashboard</a></li>   
                            <?php 
                                }
                            ?>
                                
                        <?php } else { ?>   
                            <?php 
                                if($title=='Dashboard'){
                            ?>
                            <li class="current-menu-item"><a href="<?php echo base_url()?>admin/Userhomepage">User Dashboard</a></li>
                            <?php 
                                }else{
                            ?>
                            <li><a href="<?php echo base_url()?>admin/Userhomepage">User Dashboard</a></li> 
                            <?php 
                                }
                            ?>
                        <?php } ?>
                            
                            
                        <?php 
                            if($title=='Courses' || $title=='Add/Edit Categories' || $title=='Upload Manager'){
                            ?>
                        <li class="current-menu-item">
                            <a href="<?php echo base_url()?>admin/Coursedetails/courses">Courses</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Categories">Categories</a></li>
                                <li><a href="<?php echo base_url()?>admin/coursedetails/courses">Courses</a></li>
                                <li><a href="<?php echo base_url()?>admin/uploadmanager">Upload Manager</a></li> 
                            </ul>
                        </li>
                        <?php 
                            }else{
                            ?>
                        <li>
                            <a href="<?php echo base_url()?>admin/Coursedetails/courses">Courses</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Categories">Categories</a></li>
                                <li><a href="<?php echo base_url()?>admin/coursedetails/courses">Courses</a></li>
                                <li><a href="<?php echo base_url()?>admin/uploadmanager">Upload Manager</a></li> 
                            </ul>
                        </li>
                        <?php 
                            }
                            ?>
                        <?php 
                            if($title=='Users' || $title=='User Roles' || $title=='Subscription'){
                            ?>
                        <li class="current-menu-item">
                            <a href="<?php echo base_url()?>admin/Users">Users</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Roles">Roles</a></li>
                                <li><a href="<?php echo base_url()?>admin/Subscription">Subscription</a></li>
                            </ul>
                        </li>
                        <?php 
                            }else{
                            ?>
                         <li>
                            <a href="<?php echo base_url()?>admin/Users">Users</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Roles">Roles</a></li>
                                <li><a href="<?php echo base_url()?>admin/Subscription">Subscription</a></li>
                            </ul>
                        </li>
                        <?php 
                            }
                            ?>
                        <?php 
                            if($title=='Sales' || $title=='Payout Details'){
                            ?>
                        <li class="current-menu-item">
                            <a href="<?php echo base_url()?>admin/Transaction">Sales</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Transaction">Transactions</a></li>
                                <li><a href="<?php echo base_url()?>admin/Transaction/payout">Payouts</a></li>
                            </ul>
                        </li>
                        <?php 
                            }else{
                            ?>
                        <li>
                            <a href="<?php echo base_url()?>admin/Transaction">Sales</a>
                            <ul class="sub-menu">
                                <li><a href="<?php echo base_url()?>admin/Transaction">Transactions</a></li>
                                <li><a href="<?php echo base_url()?>admin/Transaction/payout">Payouts</a></li>
                            </ul>
                        </li>
                        <?php 
                            }
                            ?>
                    </ul>
                    <!-- END / MENU -->

                    <!-- LIST ACCOUNT INFO -->
                    <ul class="list-account-info">

                        <!-- MESSAGE INFO -->
                      
                        <!-- END / MESSAGE INFO -->

                        <!-- NOTIFICATION -->
                        
                        <!-- END / NOTIFICATION -->

                        <li class="list-item account">
                                <?php 
                                   $userId=$this->session->userdata('cp_adminid');
                                   $profilePic="";
                                   $userQ=$this->Adminmodel->getuser();
                                   foreach ($userQ->result() as $rowuser){
                                    $profilePic=$rowuser->profilePic;
                                    }
                                    ?>
                            <div class="account-info item-click">
                               
                                <?php if($profilePic!=''){ ?> 
                                    <img alt="" src="<?php echo base_url();?>private/<?php echo $userId;?>/<?php echo $profilePic;?>">
                                    <?php }else{?>
                                    <img src="<?php echo base_url()?>public/images/default-profile_pic.png" alt="">
                                    <?php }?>
                            </div>
                            <div class="toggle-account toggle-list">
                                <ul class="list-account">
                                    <li><a href="<?php echo base_url()?>admin/settings/"><i class="icon md-config"></i>Setting</a></li>
                                    <li><a href="<?php echo base_url()?>admin/Adminlogout"><i class="icon md-arrow-right"></i>Sign Out</a></li>
                                </ul>
                            </div>
                        </li>


                    </ul>
                    <!-- END / LIST ACCOUNT INFO -->

                </nav>
                <!-- END / NAVIGATION -->               
        </div>
    </header>

此标头出现在应用程序的所有页面中。所以我希望它分配一些名为headerContent 的变量,它位于Admin_controller 中。该渲染函数从任何其他扩展 Admin_controller 的控制器调用,然后将 headeview 加载到该页面。

Admin_controller

class Admin_controller extends CI_Controller{
function __construct()
{
    parent::__construct();
    $this->load->model("Adminmodel","",true);

    $headerview = 'headerview';
    $this->render($headerview); # calling render() function in same class

}

protected $headerview = 'headerview';
    protected function render($headerContent) { 
        $view_data = array( 'headerContent' => $headerContent);
        $this->load->view($this->headerview);
    }

}

下面的另一个扩展 Admin_controller 的控制器调用了这个 render 函数。

Adminhome_controller.php

<?php
require APPPATH . '/controllers/admin/Admin_controller.php';

class Adminhome extends Admin_Controller{
    public function __construct(){
        parent::__construct();
        $this->load->model("Adminmodel","",true);
        
        public function index(){
        
        $data['content']=$this->load->view("admin/adminhomeview",'',true);
        $data['title']='Dashboard';
        $adminId=$this->session->userdata('cp_adminid');
        $permissions=$this->Adminmodel->getpermissions($adminId);
       
       
        $row = $permissions->row();
        
        $data['isAdmin'] = 0;
        if($row->view == 1 or $row->add == 1 or $row->edit == 1 or $row->deleteRole == 1 ){
            $data['isAdmin'] = 1;
        }
        
       $this->render($headerContent);
       
      // $this->load->view("admin/headerview",$data);
        
    }
}
?>

但它显示错误,如 Message: Undefined variable: headerContent in Adminhome_controller.php。

【问题讨论】:

  • 在尝试在 Adminhome_Controller 中使用变量之前,您没有定义变量 $headerContent
  • 您从哪里获得 $headerContent 的价值?我认为您可能将实例变量称为局部变量是您的问题。像 $this->headerContent 这样调用
  • 我想将该
    标记分配给 headerview.php 中存在的 headerContent 变量。

标签: php html codeigniter-3


【解决方案1】:

你可以创建一个包含

的模板视图文件

模板视图:

   <html>
<?php  $data = array('permission' => $permission); ?>
         <?php $this->load->view('templateincludes/header',$data); ?>


                        <?php $this->load->view($main_content); ?>  


             <?php $this->load->view('templateincludes/footer'); ?>  
    </html>

控制器:

 $data = array('permission' => '1', 'main_content' => 'folder_to_your_view/view_file_you_want_to_load');

 $this->load->view('template', $data);

标题视图:

<?= $permission ?>

【讨论】:

    【解决方案2】:

    但它显示错误,如 Message: Undefined variable: headerContent 在 Adminhome_controller.php

    扩展类中没有名称为$headerContent 的变量。似乎您想访问父/基类的变量。

    为了克服这个问题,您可以在父控制器中声明受保护的字段(Admin_controller.php),并在子控制器中访问它:

    class Admin_controller extends CI_Controller{
    
      protected $headerContent; // declare protected field
      protected $headerview = 'headerview';
    
      function __construct()
      {
         parent::__construct();
         $this->load->model("Adminmodel","",true);
    
         $headerview = 'headerview';
         $this->render($headerview); # calling render() function in same class
    
      }      
    
      protected function render($headerContent) { 
         $view_data = array( 'headerContent' => $headerContent);
         $this->headerContent = $headerContent; // assign value into $headerContent field
         $this->load->view($this->headerview);
      }
    

    }

    您可以直接在子类 (Adminhome_controller.php) 中使用:

    $this->render($this->headerContent);
    

    【讨论】:

    • 我想将该
      标记分配给 headerview.php 中存在的 headerContent 变量。
    最近更新 更多