Codeigniter:嵌套视图中的逻辑

时间:2011-08-09 13:17:11

标签: php session codeigniter widget e-commerce

我有一个template.php,其中包含页眉,页脚和主要内容。

但是,在我的template.php中,我想添加一个购物车小部件,它使用购物车类,表单类,显然是会话类。

我希望窗口小部件最初是购物车之前的一个表单,它从用户收集简单数据(名称,电子邮件,一些下拉框和复选框信息),并将这些参数发送到会话(使用CI_SESSIONS存储在数据库中)。将由应用程序(相关产品)(根据复选框选择显示产品)和购物车使用。

我希望逻辑能够通过窗口小部件进行处理而无需重新加载整个页面(AJAX / JS?),然后在用户浏览应用程序时使用会话来存储购物车数据。

任何人都可以推荐任何阅读材料或图书馆,让我找到正确的答案吗?

此致

2 个答案:

答案 0 :(得分:4)

根据我对您的问题的理解,我认为您可以将购物车小部件实现为部分视图。我通常将我的template.php构造成非常裸露,除了一些需要存在的东西。这是一个例子 layout/template.php

<html>
<head>
<?php $this->load->view('layout/head'); ?>
</head>
<body>
  <div class='header'>
    <?php $this->load->view('layout/body_header'); ?>
  </div>

  <div class='content'>
    <?php echo $content; ?>
  </div>

  <div class='widget'>
     <?php $this->load->view('cart/widget'); ?>
  </div>

  <div class='footer'>
    <?php $this->load->view('layout/body_footer'); ?>
  </div>
</body>

然后您可以在cart/widget.php中使用ajax,这样您就可以在视图中调用所需的功能。

答案 1 :(得分:1)

使用codeigntier HMVC创建视图部分。然后,您可以为窗口小部件创建一个单独的模块,您可以在其中处理窗体,会话等。

您还可以使用Ajax刷新特定模块(加载在div中),以便您的网站的所有页面分布在多个选项卡上具有相同的视图。