Вам определенно нужно правильно отформатировать код.
Я бы также рекомендовал попытаться объединить ваш PHP в блоки и отделить его от вашего HTML.
Вы можете выполнять все условия и выводить некоторые из этих элементов HTML:
<div>
<?php /*...*/ ?>
</div>
в отличие от того, что вы делаете сейчас:
<?php /*...*/ ?>
<div>
<?php /*...*/ ?>
</div>
<?php /*...*/ ?>
Кроме того, подобные блоки не имеют смысла:
<?php endforeach;?>
<?php endif;?>
Даже если бы вам пришлось разбивать код на небольшие куски, было бы проще сказать:
<?php
endforeach;
endif;
?>
РЕДАКТИРОВАТЬ : Этот ответ был предоставлен до того, как источник вопроса был переформатирован и очищен. Я не мог даже решить исходную проблему, пока не смог лучше понять, что происходит.
Это может показаться глупым, но вы уверены, что ваш gallery
контроллер работает правильно? Если вы отправляете и в одной из ваших функций CodeIgniter есть ошибка, это может привести к неправильному отображению после отправки.