Все си мисля, че с този IFRAME нагазвате в дълбоки :cens:
Аз бих опитал следното:
1) Преименувате страницата, която искате да се обновява
при определени условия (ще я нарека index.php за улеснение) на real_index.php.
rename index.php -> real_index.php
2) Създавате страница index.php (името на оригиналната) със следното съдържание:
index.php:
Код:
<html>
<head>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
</head>
<frameset rows="0,*" framespacing="0" border="0" frameborder="NO">
<frame src="check_event.php">
<frame src="real_index.php">
</frameset>
<noframes>
<body>
Your browser is very fucked up...
</body>
</noframes>
</html>
3) Създавате страница с име check_event.php със следното съдържание:
check_event.php:
Код:
<HTML>
<HEAD>
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="-1">
<?php
// Тук слагате функцията, която проверява дали събитието е настъпило - т.е. дали трябва да се
// обнови цялата страница или не. Примерно:
function check_event() {
$objConnDB=mysql_connect("hostname","sql_username","sql_password")
or die('Could not connect: ' . mysql_error());
mysql_select_db("db_name", $objConnDB)
or die('Could not select database');
$count_q = "SELECT count(*) FROM `ime_na_tablicata`;"
$cr = mysql_query($count_q)
or die('Query failed: ' . mysql_error());
$count = mysql_fetch_array($cr);
$q = "SELECT `ime_na_kolonata` FROM `ime_na_tablicata` WHERE id = '".$count."';"
$qr = mysql_query($q)
or die('Query failed: ' . mysql_error());
$r = mysql_fetch_array($qr);
return $r["ime_na_kolonata"];
}
// приемам, че стойност "yes" означава да се обнови страницата, а всяка друга
// стойност - да продължим с проверките, докато check_event не придобие
// стойност "yes"
If ( check_event() == "yes" ) {
?>
<!-- Comment: Първи случай - променливата е придобила стойност "yes" -->
<meta http-equiv="refresh" content="2;url=">
<?php } else { ?>
<!-- Comment: Втори случай - променливата е придобила стойност различна от "yes" -->
<body onload=setTimeOut('top.location="index.php"',1000)>
<?php } ?>
В първия случай зареждаме index.php, която презарежда check_event.php И real_index.php.
Във втория случай презареждаме САМО check_event.php.
Относно:
- <meta http-equiv="refresh" content="2;">
"2" означава "2 секунди" - всеки 2 секунди ще се проверява условието
чрез обновяване само на check_event.php.
- setTimeOut('top.location="index.php"',1000)
1000 означава 1 секунда - главаната страница ( index.php ) ще се презареди след 1 сек.
Ако искате това да стане без закъснение, достатъчно е да се замени
редът
<body onload=setTimeOut('top.location="index.php"',1000)>
със
<body onload="top.location='index.php'">
_______________________________________________________
Код:
П.П.
Не копирайте кода директно, защото:
- целта му е да покаже само идеята и евентуалния алгоритъм за реализацията и;
- написах го на "прима виста" и не съм го проверявал обстойно за грешки;
- има доста променливи за смяна;
Успех!