Codeigniter: логика во вложенных представлениях - PullRequest
4 голосов
/ 09 августа 2011

У меня есть template.php, который включает верхний и нижний колонтитулы и основное содержимое.

Однако в моем template.php я хотел бы добавить виджет корзины покупок, который использует класс корзины покупок,класс формы и, очевидно, класс сеанса.

Я хочу, чтобы виджет изначально был формой перед корзиной, которая собирает простые данные от пользователя (имя, адрес электронной почты, некоторые выпадающие списки и информация о флажках) и отправляет эти параметры всеанс (хранится в базе данных с использованием CI_SESSIONS), который будет использоваться приложением (связанные продукты) (показывать продукты на основе выбранных флажков) и корзиной.

Я хочу, чтобы логика обрабатывалась через виджет без необходимостиперезагрузить всю страницу (AJAX / JS?), а затем использовать сеанс для сохранения данных корзины, когда пользователь просматривает приложение.

Может кто-нибудь порекомендовать какие-либо материалы для чтения или библиотеки, чтобы направить меня в правильном направлении?на ответ?

С уважением,

Ответы [ 2 ]

4 голосов
/ 09 августа 2011

Из того, что я понимаю в вашей проблеме, я думаю, что вы можете реализовать свой виджет корзины покупок как частичное представление.Я обычно структурирую свой 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>

Затем вы можете использовать ajax в вашем cart/widget.php, чтобы вы могли вызывать функции, которые вам нужны в вашем представлении частично.

1 голос
/ 09 августа 2011

Используйте codeigntier HMVC для создания частичных представлений.Затем вы можете иметь отдельный модуль для виджета, где вы можете обрабатывать формы, сеансы и т. Д.

Вы также можете использовать Ajax для обновления определенного модуля (загруженного в div), чтобы все страницы вашего веб-сайта распространялись по всемунесколько вкладок имеют одинаковый вид.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...