使用php打开一个窗口弹出窗口

时间:2013-09-11 23:48:57

标签: javascript php jquery mysql ajax

我正在使用php,mysql和ajax开发我自己的聊天。

我有一个页面每5秒加载一次ajax。此ajax验证数据库并检查是否有人想要与已连接的另一个人聊天。

这很好用。我的问题是,当这个在ajax函数中调用的php文件返回时,有人想要聊天时,我需要打开一个弹出窗口。

这是ajax调用的php文件的代码。

//  $query = "SELECT * FROM c_solicitud WHERE PARA = ".$_GET['id_corredor'];
//  $result = mysql_query($query);
//  echo $query;
    $solicitud = 0;
    while($row = mysql_fetch_assoc($result))
    {
        $solicitud = 1; //Existen solicitudes para este corredor
        $chat_de = $row['de'];
        $chat_para = $row['para'];
        $nombre_de = $row['nombre_de'];
        $nombre_para = $row['nombre_para'];     
        $input_desde = $chat_de;
        $input_para = $chat_para;

//NEED TO OPEN A POP UP HERE.
}

我需要在选择之后打开一个窗口。

我试图在主页面中执行一个函数(调用ajax函数。但是这个javascript不起作用。

这是基本的,我做一个查询,如果这个查询抛出一些结果,我想打开一个弹出窗口。

3 个答案:

答案 0 :(得分:4)

PHP是一种服务器端脚本语言。你需要使用JavaScript(大部分时间都在客户端运行

你会想要使用像window.open这样的东西,这应该有点像这样:

window.open('http://google.com');

请记住,如今大多数浏览器都内置了弹出窗口阻止程序,除非用户过度使用,否则会阻止您的尝试。如果一切都失败了,请使用模态!


总而言之,让PHP向用户返回一个值,然后Javascript将捕获并启动相应的URL。此URL 应该包含告诉PHP打开聊天会话的人所需的任何参数。

答案 1 :(得分:2)

您不会在PHP端弹出窗口,而是在javascript(客户端/浏览器)端执行此操作。

PHP方面只是将结果返回给您,可以是HTML,也可以是JSON,或者......

所以你的PHP看起来像这样:

while($row = mysql_fetch_assoc($result))
{
    $solicitud = 1; //Existen solicitudes para este corredor
    $chat_de = $row['de'];
    $chat_para = $row['para'];
    $nombre_de = $row['nombre_de'];
    $nombre_para = $row['nombre_para'];     
    $input_desde = $chat_de;
    $input_para = $chat_para;

    //NEED TO OPEN A POP UP HERE.
}

$return = 'Message from: ' . $chat_de;

echo $return;

重要提示:此数据将在您的AJAX成功函数中收到,而不会在其他地方收到

例如,如果您的AJAX代码块如下所示:

$.ajax({
    type: "POST",
    url: "my_php_processor_file.php",
    data: 'user=johnadams',
    success:function(phpData){
        alert(phpData);
    }
});

数据“来自:等等的消息”将在变量phpData中返回 - 因为我们警告该变量,将显示一个包含数据的警告框。

对于弹出窗口,我建议使用jQueryUI的dialog小部件,因为它易于使用并且是一个很好的起点。

您需要在文档的<head>标记中添加以下这些代码:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.9.1/themes/base/jquery-ui.css" />

您的文档中需要一个DIV,其中存储注入的HTML(由PHP返回):

<div id="chatresponse"></div>

然后修改后的jQuery / AJAX代码如下所示:

$.ajax({
    type: "POST",
    url: "my_php_processor_file.php",
    data: 'user=johnadams',
    success:function(phpData){
        $('#chatresponse').html(phpData);
        $('#chatresponse').dialog();
    }
});

答案 2 :(得分:1)

我建议查看 JSONP

通过这种方式,您可以对服务器进行AJAX轮询,服务器决定何时打开包含window.open('http://google.com');的javascript函数。