簡體   English   中英

使用php打開一個窗口彈出窗口

[英]Open a window popup using php

我正在使用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無法正常工作。

這是基本的操作,我進行查詢,如果此查詢引發某些結果,我想打開一個彈出窗口。

PHP是服務器端腳本語言。 您將需要使用JavaScript( 大部分時間在客戶端運行)

您將要使用諸如window.open之類的東西,它應該像這樣工作:

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

請記住,當今大多數瀏覽器都內置了彈出窗口阻止程序,除非您將其覆蓋,否則它們將阻止您的嘗試。 如果其他所有方法均失敗,請使用模態!


綜上所述,獲取PHP向用戶返回一個值,然后Javascript將捕獲該值並啟動相應的URL。 該URL 應該包含任何您需要告訴PHP與誰打開聊天會話的參數。

您沒有在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);
    }
});

數據“ Message from:etc etc”將在變量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();
    }
});

我建議研究JSONP

這樣,您可以讓AJAX輪詢服務器,然后服務器決定何時打開包含window.open('http://google.com'); JavaScript函數window.open('http://google.com');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM