Я предполагаю, что вы используете Cake 2.x.
$this->render()
возвращает объект ответа и не выводит ответ, пока вы не скажете его.Чтобы получить ответ, попробуйте что-то вроде этого в вашем цикле:
$out = '';
foreach($results as $result):
$this->set('var', $result['index']);
$response = $this->render('/elements/local_coupon');
$out .= $response->body();
endforeach;
echo $out;
Это соберет весь визуализированный контент и отобразит его в ваш ответ ajax.
Примечание: это не отправляет заголовки, поэтому вы, вероятно, должны сделать это вручную.Я предлагаю вместо использования этого подхода создать представление для find_by_location()
и отобразить там элементы, и позволить Cake обрабатывать отправку заголовков и содержимого.