2014-02-20 133 views
2

我有LOGIN一個iframe和REGISTER按鈕,登錄按鈕將打開另一個iframe中的登錄頁面,並提交登錄數據後的第二iFrame被刷新。如何從另一個iframe更新iframe?

不過,我想能夠同時更新第一個iframe中更改自己的登錄按鈕,我的註銷按鈕。

$ _SESSION [「用戶級」]確實有一個值,我loginmenu.php正常工作,以反映正確的按鈕,整個頁面被刷新與F5

這裏是我的索引頁的一部分,它加載時驗證用戶名和密碼($表格後,我登錄和註冊按鈕的代碼...

<div class="login"> 
    <iframe class="iframemain" name="iframe-login" id="loginmenu" src="loginmenu.php"></iframe> 
    </div> 

這裏是我的loginmenu.php ...

<?php session_start();?> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

<head> 
<meta content="text/html; charset=utf-8" http-equiv="Content-Type" /> 
<link rel="stylesheet" href="0000001.css" type="text/css" /> 
<title> </title> 
</head> 

<body class="login"> 
<?php 
$userlevel=$_SESSION['userlevel']; 

if ($userlevel=="") 
{ 
?><a href="login.php" target="iframemain"><img id="loginImg" src="gfx/btn.menulogin.png"/></a><img src="gfx/spacer.png" width="2px"/><a href="register.php" target="iframe-body"><img src="gfx/btn.menuregister.png"/></a><?php 
} 

if ($userlevel<>"") 
{ 
?><a href="logout.php" target="iframemain"><img src="gfx/btn.menulogout.png"/></a><img src="gfx/spacer.png" width="2px"/><a href="register.php" target="iframe-body"><img src="gfx/btn.menuregister.png"/></a><?php 
} 

?> 

</body> 

</html> 

實際上是「有效「)......這是我的失敗嘗試更新我的loginmenu.php ...

<?php 

(validing code here) 

if($form=="valid") 
{ 
    ?> 
    <script> 
    element=document.getElementById('loginmenu') 
    element.src="loginmenu.php"; 
    </script> 
    <?php 
} 

(other php functions here) 

?> 

我也有試過這個,看看圖像會發生變化,但它也失敗

if($form=="valid") 
{ 
    ?> 
    <script> 
    element=document.getElementById('loginImg') 
    element.src="gfx/btn.menulogout.png"; 
    </script> 
    <?php 
} 

回答

1

給名字你I幀,那麼你可以參考的窗口對象iframe中從任何地方像這樣:

var windowInIframe = top.frame_name; 

如果使用這種方法,你需要設置window.location.href而不是src加載一個新的p年齡到iframe。

+0

它有一個名爲 「iFrame的登陸」 - 我應該使用getElementByName呢? - 請注意,我一直在學習CSS和PHP兩個星期和JavaScript一天,所以要溫柔。你也可以解釋爲什麼我的代碼不能工作,即使他們正在識別特定的ID? –

+0

沒有在名稱= 「IframeA」 你可以參考它像'top.IframeB.document.getElementById( 'the_id')'得到NAME = 「IframeB」 的元素。 'top'是'window'的一個屬性,它指的是瀏覽器視口中最頂層的窗口,即包含你的'iframe'元素的窗口。 – Teemu

+0

我已試過,但它仍然失敗... 元素= top.iframe-login.document.getElementById( 'loginmenu') element.src = 「loginmenu.php」; –

0

試試這個..

var links = [ 
    'javascript:\'<button onclick="parent.twonav(1)">Change 2nd frame</button>\'', 
    'javascript:\'Hello\'' 
]; 
var one, two; 
window.onload=function() { 
    one = document.getElementById('frameone'); 
    two = document.getElementById('frametwo'); 
} 

function onenav(idx) { 
    one.src=links[idx]; 
} 

function twonav(idx) { 
    two.src=links[idx]; 
} 

請參考以下鏈接http://jsfiddle.net/mplungjan/WH4ns/

+0

是的,我在我嘗試尋找解決方案時看到了這一點,但我想避免必須按下按鈕 - 我發現的所有內容以及我從中學習的網站都傾向於依靠按鈕按下! –