如何将表单提交到cakephp中的iframe返回结果?
另一个问题是,如何在控制器动作的循环中为每次迭代返回一些消息到iframe。让我们说它迭代了10次,所以在每次迭代之后,它会立即显示消息,例如“迭代1已完成”等等...在iframe ....
答案 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
}