将表单提交的结果返回到cakephp中的iframe

时间:2010-07-01 17:23:07

标签: cakephp iframe

如何将表单提交到cakephp中的iframe返回结果?

另一个问题是,如何在控制器动作的循环中为每次迭代返回一些消息到iframe。让我们说它迭代了10次,所以在每次迭代之后,它会立即显示消息,例如“迭代1已完成”等等...在iframe ....

1 个答案:

答案 0 :(得分:-1)

我认为你需要看一下这种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
    }