Нужно четко разделить на клиентскую и серверную часть. "Цикл" должен быть на клиентской... на серверной тоже возможно но это костыль.
Серверная должна принимать запросы - пустой, с выбранной картинкой и id позиции.
При пустом запросе выдает клиентскую оболочку со скриптами и картинки (позиция берется по умолчанию как 1, те выдаются картинки с 1 по 3), при запросе с аргументами вносит изменения в exel файл и выдает следующие картинки с учетом текущей позиции, если картинок больше нет выдает ваш текст что картинок больше нет.
Клиентская должна содержать div для картинок (по умолчанию загрузятся картинки используя 1 позицию, на серверной стороне), js переменную текущей позиции (по умолчанию 1, задается на серверной при отправке клиентской оболочки), jq событие выбора картинки и ajax функцию его обработки (при выборе ajax отправляет выбранную картинку и текущую позицию в замен получает картинки которые нужно записать в div для картинок с заменой содержимого).