2014-02-20 2 views
2

LOGIN 및 REGISTER 버튼이있는 iframe이 있고 로그인 버튼은 다른 iframe에서 로그인 페이지를 열고 로그인 데이터를 제출하면 두 번째 iframe이 새로 고쳐집니다.다른 iframe에서 iframe을 어떻게 업데이트합니까?

그러나 LOGOUT 버튼을 내 LOGOUT 버튼으로 변경하려면 첫 번째 iframe을 업데이트 할 수 있어야합니다.

$ _SESSION [ '유저 레벨은'] 값을 가지고, 내 loginmenu.php는 페이지 전체가 여기

내 인덱스 페이지의 일부가로드되는 F5와 새로 고칠 때 올바른 버튼을 반영하기 위해 잘 작동 사용자 이름과 암호 ($ 양식을 검증 한 후 내 LOGIN 및 REGISTER 버튼에 대한 코드 ... 여기

<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
실패 당신의 iframe을에 이름을 부여

, 당신은 어느 곳과 같이에서 iframe을에서 윈도우 객체를 참조 할 수 있습니다 :이 방법을 사용하는 경우

var windowInIframe = top.frame_name; 

, 당신은 새로운 페이지를로드하는 대신 srcwindow.location.href을 설정해야 나이를 iframe으로

+0

은 이름 "은 iframe-로그인"이 참조 - 내가 getElementByName 대신 사용해야을? - 참고하시기 바랍니다, 나는 단지 CSS와 PHP를 2 주 동안 그리고 자바 스크립트를 하루 동안 배웠습니다. 또한 특정 ID를 식별하더라도 내 코드가 작동하지 않는 이유를 설명 할 수 있습니까? –

+0

아니요, name = "IframeA"에서 'top.IframeB.document.getElementById ('the_id ')'와 (과) 같이 이름 = "IframeB"의 요소를 가져올 수 있습니다. 'top'은'window'의 속성입니다. 브라우저의 뷰포트에서 가장 위에있는 창, 즉'iframe' 엘리먼트가있는 창을 가리 킵니다. – Teemu

+0

나는 이것을 시도했지만 여전히 실패한다 ... element = 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

예, i 솔루션을 찾으려는 시도에서 이것을 보았습니다. 그러나 버튼을 누르지 않아도되고 싶습니다. 내가 찾은 모든 것, 그리고 내가 배우는 웹 사이트는 버튼을 누르는 경향이 있습니다 !! –

관련 문제