0

我有一个问题。我有一个弹出窗口,在用户在弹出窗口中创建房间后,我想关闭该弹出窗口,然后将打开器窗口重定向到新的 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!"; } 


?>
4

3 回答 3

1

尝试

<script type="text/javascript">
    CloseAndRefresh();
</script>

尽管 PHP 重定向可能更适合您的目的。

这是一篇关于 PHP 重定向的文章:

http://php.about.com/od/learnphp/ht/phpredirection.htm

于 2013-08-21T21:40:46.590 回答
1

您不能从 PHP 调用 Javascript 函数,因为 PHP 在服务器上运行,而 Javascript 是在 PHP 代码执行很久之后下载并在客户端上运行的。但是,您可以打印一个<script>标签,在这种情况下,您可以调用所需的 Javascript 函数:

<?php
   echo '<script>(function () { CloseAndRefresh(); } ());</script>';
于 2013-08-21T21:40:52.843 回答
1

你命名的“弹出”不是很清楚:它是另一个浏览器窗口吗?一个 window.confirm 或 window.alert 对话框?像jQueryUITwitter Bootstrap这样的弹出窗口?

假设它是一个浏览器窗口。

你有两种可能:

1 - 制作一个按钮来关闭您的弹出窗口:

<button onClick="CloseAndRefresh()">Close</button>

2 - N 秒后自动触发:

<script type="application/javascript">
   var n = 5; 
  setTimeout(CloseAndRefresh, 1000*n);
</script>
于 2013-08-21T21:48:00.740 回答