Я думаю, вам нужно взглянуть на AJAX-подход к этому. Вы можете использовать Javascript для вставки данных в iframe, но итеративное взаимодействие между представлением и контроллером лучше всего выполнять с помощью соединения AJAX.
Это быстрый и грязный подход, который я выбрал.
В конце действия контроллера:
App::import('Helper', 'Javascript');
$javascript = new JavascriptHelper();
echo($javascript->object($returnVals)); // allows passing of array
exit(1);
В представлении вам нужно захватить возвращенное значение и проанализировать, используя JSON.parse:
<snip-->
if(xmlHttp)
{
xmlHttp.open("POST",actionURL,true);
xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xmlHttp.onreadystatechange = function()
{
if (xmlHttp.readyState == 4 && xmlHttp.status == 200)
{
doAction(xmlHttp.responseText,zone);
}
<--snip>
function doAction(props,zone)
{
var newProps = JSON.parse(props);//needs to be parsed into a JS object.
//other stuff here
}