2014-02-20 8 views
2

У меня есть iframe с кнопками LOGIN и REGISTER, кнопка входа в систему открывает страницу входа в другой iframe, а после отправки данных входа обновляется второй iframe.Как обновить iframe из другого iframe?

Однако, я хотел бы иметь возможность также обновить первый iframe, чтобы изменить мою кнопку LOGIN на мою кнопку LOGOUT.

$ _SESSION [ «userlevel»] имеет значение, и моя 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

Дайте имена ваших фреймов, то вы можете передать объекты окна в любом месте из фреймов, как так:

var windowInIframe = top.frame_name; 

Если вы используете этот метод, вам необходимо установить window.location.href вместо src, чтобы загрузить новый р возраст до iframe.

+0

имеет название "IFrame-логин" - я должен использовать getElementByName вместо этого? - Обратите внимание, что я изучал только css и php в течение 2 недель и javascript на один день, поэтому будьте осторожны. также вы можете объяснить, почему мои коды не работают, даже если они идентифицируют конкретные идентификаторы? –

+0

Нет, в имени = "IframeA" вы можете получить элемент в name = "IframeB", указав его как 'top.IframeB.document.getElementById ('the_id')'. '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 видели это при попытке найти решение, но я хочу, чтобы не нажимать кнопку - все, что я нашел, и веб-сайт, который я изучаю, имеет тенденцию полагаться на нажатие кнопки! –

Смежные вопросы