0
如何從cakephp中將表單提交到iframe中的結果?從cakephp中將表單提交到iframe中返回結果
另一個問題是,如何在控制器動作的循環中每次迭代時將一些消息返回給iframe。可以說它迭代了10次,所以在每次迭代之後,它會立即顯示消息,如「迭代1完成」等等...在iframe中... ...
如何從cakephp中將表單提交到iframe中的結果?從cakephp中將表單提交到iframe中返回結果
另一個問題是,如何在控制器動作的循環中每次迭代時將一些消息返回給iframe。可以說它迭代了10次,所以在每次迭代之後,它會立即顯示消息,如「迭代1完成」等等...在iframe中... ...
我認爲你需要看一個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
}
謝謝LEO ......我知道我將需要使用ajax .......但我只想知道,怎麼做,讓我說我提交一個表單,並且它運行一個控制器動作,所以現在,我如何發送一個$結果到從這個控制器動作的iframe,以及如何將這個$結果讀取到iframe ...... – texpert 2010-07-02 14:16:50
不知道你想要做什麼的細節,這很難說。我猜如果你必須使用iframe,那麼你需要保持一個句柄,並使用javascript將適當的信息戳入它。儘管如此,我不禁想到你爲自己製造困難。 – Leo 2010-07-05 15:29:54
我編輯了我的答案以包含一些代碼片段。 – Leo 2010-07-05 16:09:18