Я думаю, что мог бы приближаться к этому неправильным способом, таким образом, я буду ценить любые комментарии/руководство. Надо надеяться, я могу объяснить когерентно достаточно, чего я пытаюсь достигнуть:
Я хочу создать блок HTML (например, поле, содержащее профиль пользователя), который я загружу как часть моего расположения на большинстве страниц, которые я генерирую.
Я также хотел бы смочь повторно создать содержание в этом поле самостоятельно от отдельного URL. Это так, я могу обновить поле с вызовом Ajax.
Я не хочу копировать код, который создает этот HTML.
Я ценю, что мог initally загрузить это поле с помощью вызова Ajax, но это, будет казаться, мне добавит ненужный вызов к серверу?
Путем я думал, что мог сделать это, при наличии метода в моем контроллере, который просто представляет этот блок HTML, но как я затем запросил бы вывод из этого метода в другом контроллере / представление?
Как Вы приблизились бы к этому?
Заранее спасибо
Создайте представление, чтобы генерировать блок HTML для профиля пользователя и назвать его от Вашего использования контроллера:
$user_html = $this->load->view('user_view', $user_data, true);
Третий параметр возвращает представление как строку вместо того, чтобы отобразить его. Это может затем быть передано в другое представление обычным способом.
$data['user_block'] = $user_html;
$this->load->view('page_view', $data);
Что касается данных, Вы не должны генерировать HTML с PHP. Можно использовать jQuery для генерации необходимых элементов от вывода объекта JSON в источнике страницы. Можно затем показать миленькую анимацию 'загрузки' на элементе, пока он находит время для удара состояния 'domready'.
До перезаполнения отделения затронут, сделайте следующее:
Сделайте отделение для своего профиля и дайте ему идентификатор. Поместите каждый 'элемент' данных в свой собственный p элемент и перенесите фактические данные в элемент промежутка. например, <p> Имя: <промежуток> Joe Bloggs </промежуток> </p> затем просто использует jQuery, чтобы пересечь dom и повторно заполнить промежутки с данными. Просто удостоверьтесь, что Вы производите свои данные в корректном 'порядке'.
Любые вопросы, не стесняйтесь к обратной связи.