我有一个问题。我有一个弹出窗口,当用户在弹出窗口中创建一个房间后,我想关闭该弹出窗口,然后将开启窗口重定向到一个新的URL。我有功能和一切,除了我不知道如何调用该功能。 (下面我写了我希望加载函数的地方)。
由于
<?php session_start(); ?>
<script type="text/javascript">
function CloseAndRefresh()
{
opener.location.href = "<?php echo $website_url; ?>/livechat.php?idim=<?php echo $perdorusi2; ?>&room=<?php echo $emri; ?>";
opener.focus();
self.close();
}
</script>
<?php
include_once('db.php');
$perdoruesi = $_GET['perdoruesi'];
if( strlen($_SESSION['id']) > '0' ) { $perdorusi2 = $_SESSION['id']; } else { $perdorusi2 = $perdoruesi; }
function makeRandomString($max=8) {
$i = 0;
$possible_keys = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$keys_length = strlen($possible_keys);
$str = "";
while($i<$max) {
$rand = mt_rand(1,$keys_length-1);
$str.= $possible_keys[$rand];
$i++;
}
return $str;
}
$emri = makeRandomString();
$hidhnedb = mysql_query("INSERT INTO dbname(`row1`, `row2`) VALUES(NULL, '$emri')");
if($hidhnedb) {
$max=count($_SESSION['mysession']);
$i = $max + 1;
$_SESSION['mysession'][$i][$emri] = $emri;
?>
***Here is the the place where I want to call the javascript function but I do not know how to do that.***
<?php
} else { echo "Error!"; }
?>
答案 0 :(得分:1)
尝试
<script type="text/javascript">
CloseAndRefresh();
</script>
虽然PHP重定向可能更适合您的目的。
这是一篇关于PHP重定向的文章:
答案 1 :(得分:1)
由于PHP在服务器上运行,因此无法从PHP调用Javascript函数,而在PHP代码执行很久之后,Javascript就会在客户端上下载并运行。但是,您可以打印<script>
标签,在这种情况下,您可以调用所需的Javascript函数:
<?php
echo '<script>(function () { CloseAndRefresh(); } ());</script>';
答案 2 :(得分:1)
你所谓的“弹出窗口”并不是很清楚:它是另一个浏览器窗口吗? window.confirm或window.alert对话框?像jQueryUI或Twitter Bootstrap中的弹出窗口?
我们假设它是一个浏览器窗口。
您有两种可能性:
1 - 按一个按钮关闭弹出窗口:
<button onClick="CloseAndRefresh()">Close</button>
2 - N秒后自动触发:
<script type="application/javascript">
var n = 5;
setTimeout(CloseAndRefresh, 1000*n);
</script>