$if (isset($_SESSION['message']) && !empty($_SESSION['message'])) {
, что впрочем не решает первоначальную проблему, у вас по прежнему мессаж инициализируется пустым массивом (зачем?). Uncaught TypeError: $ is not a functionУ вас жквери как $ не определен, либо ставьте версию поновее с риском что половина скриптов отвалится, либо замените вызов на JQurey() вместо $, либо обертку сделайте.
для распарсивания ... и правильного отображения логику надо городить большую, почти как в самом php - и циклы и if'ы, проверки уровней массивов, всё, всё, всёПочему почти, такую же, точнее ее же. И здесь у вас опять же несвязуха из за похожести терминов. Логика отделенная от представления не значит что в шаблонах нет логических операторов. Логика в понимании мвц это работа со свойствами объекта, манипуляция ими, КРУД, прочие телодвижения. Логика представления вполне может включать кучу кода, но она не будет связана ни с чем кроме вывода данных и арифметики типа в ячейку 3 помещаем сумму ячеек 1 и 2.
ob_start() и flush на моих проектах никогда не возникало необходимости использовать, потому что у меня всё строго - сначала отрабатывает php, потом уже подключается html-код, проблема сейчас в том, что они уж слишком крепко связаны.Это блин ваще бред, что там может быть "крепко связано"??? Для этого и есть представление и шаблоны.