Codeigniter - как повторно использовать код для генерации блока HTML - PullRequest
6 голосов
/ 28 ноября 2008

Я думаю, что могу подойти к этому неправильно, поэтому буду признателен за любые комментарии / рекомендации. Надеюсь, я смогу достаточно четко объяснить, чего я пытаюсь достичь:

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

  • Я также хотел бы иметь возможность воссоздать контент в этом коробка самостоятельно с отдельного URL. Поэтому я могу обновить окно с помощью вызова AJAX.

  • Я не хочу дублировать код который создает этот HTML.

Я ценю, что я мог изначально загрузить эту коробку, используя вызов AJAX, но мне показалось бы добавить ненужный вызов на сервер?

Я думал, что смогу сделать это, используя метод в моем контроллере, который просто визуализирует этот блок HTML, но как мне тогда запросить вывод этого метода в другом контроллере / представлении?

Как бы вы подошли к этому?

Заранее спасибо

Ответы [ 2 ]

7 голосов
/ 28 ноября 2008

Создайте представление для генерации блока HTML для профиля пользователя и вызовите его с вашего контроллера, используя:

$user_html = $this->load->view('user_view', $user_data, true);

Третий параметр возвращает представление в виде строки вместо ее отображения. Затем это может быть передано в другое представление обычным способом.

$data['user_block'] = $user_html;
$this->load->view('page_view', $data);
0 голосов
/ 29 ноября 2008

Что касается данных, вам не нужно генерировать HTML с помощью PHP. Вы можете использовать jQuery для генерации необходимых элементов из вывода объекта JSON в исходном коде страницы. Затем вы можете показать приятную небольшую анимацию «загрузки» элемента, пока он не достигнет состояния «domready».

Что касается повторного заполнения div, выполните следующие действия:

Создайте div для своего профиля и присвойте ему идентификатор. Поместите каждый «элемент» данных в собственный элемент p и оберните фактические данные в элемент span. например

Имя: Джо Блоггс

Затем просто используйте jQuery , чтобы пройти через дом и снова заполнить участки данными. Просто убедитесь, что вы выводите свои данные в правильном «порядке».

Любые вопросы, не стесняйтесь обратной связи.

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