【问题标题】:sub view is loading before html page rendered in Codeigniter子视图在 Codeigniter 中呈现 html 页面之前加载
【发布时间】:2019-07-23 09:53:45
【问题描述】:

我有两个视图,一个用于菜单,另一个用于页面内容。

  1. 标题
  2. 购物车 在标题购物车弹出窗口中

是一个数组键,其中包含购物车数据,只有当用户单击购物车图标时才会弹出该数据,但这里在呈现页面时,此购物车内容会在生成 html 之前打印出来。

此代码在页面上生成 html 之前打印:

 <li>
     <a href="#" class="image"><img src="1550847861_Hydrangeas.jpg class="cart-thumb" alt=""></a>
     <div class="cart-item-desc">
         <h6><a href="#">Item1</a></h6>
         <p>1x - <span class="price">475</span></p>
     </div>
     <span class="dropdown-product-remove"><i class="icon-cross"></i></span>
</li>

然后生成html和body内容

header.php

<div class="cart">
    <a href="#" id="header-cart-btn" target="_blank"><i class="ti-bag"></i><span class="cart_quantity"><?php echo $tot_cart;?></span></a>         
    <ul class="cart-list">
      <?php echo $cartpopup; ?>
    </ul>
</div>

控制器:

public function index()     {  
      $data['output_cart']= $this->show_cart();
      $tot_cart=$this->cart->total_items();
      $data_menu = $this->category_menu();
      $output_cart_popup= $this->load_cart_header_pop(); 
      $this->load->view('header',['menudata'=>$data_menu,'tot_cart'=>$tot_cart,'cartpopup'=>$output_cart_popup]);       
      $this->load->view('cart',$data); 
}

截图:

【问题讨论】:

  • 也许你应该添加一些截图来澄清你的问题——因为我真的很难理解你的问题......
  • @sintakonte:我已经添加了我在浏览器中得到的截图。我正在控制器中生成 li 标签的 html 代码。
  • 我想我们不能不知道 $this->show_cart();和 $this->load_cart_header_pop();可能是退货问题。请记住,您可以将视图呈现为字符串 $data['cart'] = $this->load->view('cart',$data, true);

标签: php codeigniter codeigniter-3


【解决方案1】:

您只需要将第三个参数设为“true”,如下所示:

$subView = $this->load->view(YOUR_VIEW, YOUR_DATA_ARRAY, true);
$params = array(
YOUR_DATA_ARRAY,
'subView' => $subView 
);
$this->load->view(YOUR_VIEW, YOUR_DATA, true);

这样您的视图将只预加载在内存中,然后您只需将参数中的视图传递给主视图,最后在主视图中回显它,如下所示:

echo $subView;

【讨论】:

    猜你喜欢
    • 2019-03-30
    • 2013-06-30
    • 2017-04-09
    • 2015-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 1970-01-01
    相关资源
    最近更新 更多