PHP постоянный обмен при исполнении кода?
Можно прикрутить comet сервер, или записывать промежуточные результаты в хранилище и уже оттуда дергать скриптом.
отправили пост запрос через js он вернул результат только 1 раз
Это естественно. Протокол HTTP именно так и устроен: запрос - ответ. Причём ответ сначала вычисляется, а затем отправляется клиенту.у меня работает foreach в php и при каждом завершении цикла я хочу получать результат
Как уже написано выше - сначала код полностью отрабатывает, а потом результат отправляется клиенту. Вы не можете отправить клиенту данные и продолжить работу используя HTTP.или есть какой то обработчик получения return ?
Нет. 
В итоге остаётся всего несколько решений.
1) WebSocket
2) Server Sent Events 
3) Comet
Однако. Все эти решения требуют глубокой переработки вашего приложения, и просто добавить кусочек кода в имеющийся цикл не получится.