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

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

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

  • Я также хотел бы смочь повторно создать содержание в этом поле самостоятельно от отдельного URL. Это так, я могу обновить поле с вызовом Ajax.

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

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

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

Как Вы приблизились бы к этому?

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

6
задан Tom Haigh 28 November 2008 в 12:30
поделиться

2 ответа

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

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

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

$data['user_block'] = $user_html;
$this->load->view('page_view', $data);
7
ответ дан 17 December 2019 в 02:35
поделиться

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

До перезаполнения отделения затронут, сделайте следующее:

Сделайте отделение для своего профиля и дайте ему идентификатор. Поместите каждый 'элемент' данных в свой собственный p элемент и перенесите фактические данные в элемент промежутка. например, <p> Имя: <промежуток> Joe Bloggs </промежуток> </p> затем просто использует jQuery, чтобы пересечь dom и повторно заполнить промежутки с данными. Просто удостоверьтесь, что Вы производите свои данные в корректном 'порядке'.

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

-1
ответ дан 17 December 2019 в 02:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: