2010-06-06 16 views
19

IFRAME içinde bulunan basit bir form var. Kullanıcı SUBMIT’i tıkladığında, sunucumdaki belirli bir sayfaya yönlendirir. Ben yönlendirme için kullanmak işleviPHP "üstbilgi (konum)", IFRAME içinde, _top konumunda yüklemek için?

header ('Location: mypage2.html'); 
exit(); 

olduğu Ama yeni sayfa değil kullandığım aynı IFRAME içinde _top konumda açmak istiyorum. Tarayıcıya yeni sayfayı IFRAME içinde değil de _top'ta açmasını nasıl söyleyebilirim? Şimdiden teşekkürler.

+0

FORM öğesine erişiminiz yoksa ve ayrıca PARENT sayfasının koduna erişiminiz yoksa ne yaparsınız? – Doug

cevap

26

PHP'de istenen etkiyi elde edemezsiniz. Sen ebeveyni erişmek için javascript kullanabilirsiniz

<form ... target="_top"> 
+0

+1 iyi bir çözüm. Ancak, bir hata durumunda kullanıcıyı orijinal sayfaya yeniden yönlendirmek istiyorsanız, herhangi bir sunucu tarafı hatası kontrol eder. – jeroen

+0

Şimdiye kadar bu en basit çözüm oldu :) Ama ben bilmiyorum ... :) Sormak daha iyidir, doğru :) – Spoonk

+0

@jeroen Basit .html sayfam içinde javascript ile bir alan denetimi yapın. Boş alanlar durumunda yeniden yönlendirmeye ihtiyacım yok. Uyarı kullanıyorum :) – Spoonk

11

: Bu JavaScript dan yapmak ya <form> için target öznitelik eklemek gerekirdi şeydir. Sen böylece üst sayfa bu vardır .. senin PHP'de javascript dışarı yankı olabilir:

function changeURL(url) { 
    document.location = url; 
} 

ve php komut

, sen

<script> 
    parent.changeURL('mypage2.html'); 
</script> 

Eğer parent.document arayamazsın sebebi yankı. konum, salt okunur olduğu içindir - bunu yapmak için üst öğede bir işleviniz olması gerekir.

+1

Bu daha iyi bir çözümdür. –

4

böyle javascript kullanabilirsiniz:

target.window.location='locationpage.html'; 
top.window.location='mypage2.html'; 
1

en iyi ve en basit şey yapmak olan formu hedef elemanını

<form action="..." target="_top"> 
<form action="..." target="_parent"> 

hedef parametrelerinin birini kullanmak gayet iyi çalışıyor

1

<a href="pagename.php?Break=Y">Break Out</a> kullanarak sayfaya bağlantı verebilir veya

kodunu kullanabilirsiniz

echo "<script>top.window.location = '/mynewpage.php'</script>"; 
die; 

die; değil mi: 10

Ardından iframe yerine ana sayfasını yönlendirmek için

if(isset($_GET['Break'])) // 
    { 
    $BreakFrame = true; 
    $BreakToPage = "pagename.php"; 

    } 

<script language="JavaScript" type="text/javascript"> 
function changeURL(url) { 
    document.location = url; 
} 
</script> 

<?php if($BreakFrame) { ?> 

<script language="JavaScript" type="text/javascript"> 
parent.changeURL('<?=$BreakToPage?>'); 
</script> 

<? }?> 
7

doğrudan PHP'de basit bir yolu, sayfanın başlığında aşağıdaki kodu kullanabilirsiniz zorunlu olarak gerekli değildir, ancak betiğin daha fazla devam etmesini önlemek için, örneğin, kullanıcının tarayıcısında javascript devre dışı bırakılmışsa, iyi bir durumdur.

İlgili konular