[英]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.