我正在尝试在我的网站上创建一种邮件。
所以我有一个包含三列的表,比方说(为了简单起见,但实际上),有两个 int 字段(从,到)和一个时间戳(发送日期)
在我的页面的一部分中,我显示了一个带有分组依据的消息列表,以to
对发往同一个人的所有消息进行分组。
最终,我想在单击消息时显示整个对话,但这并不明显。
我尝试了 jquery ajax,然后是 iframe,但它不是很好,因为一方面它没有返回任何东西(白页),其次每秒重新加载不是很好。
首先,我想显示我的请求的结果。
我没有设置回调,因为我不知道如何处理 jquery 回调中的应用程序。我认为最简单的方法是在 php 中进行处理并运行我的循环,然后在 iframe 中显示所有内容。
所以我把它放在jquery中
$( ".load_message" ).click(function() {
//On marque uniquement l'id de l'expediteur et du destinataire
// pour chercher les messages expédiés par A vers B ou inversement
var from = $(this).closest('tr').find('span.from').text();
var to = $(this).closest('tr').find('span.to').text();
$.ajax({
type: 'POST',
url: 'pages_ajax/fetch-messages.php',
data: { from: from, to: to},
dataType: "json"
});
});
setInterval(refreshIframe1, 1000);
function refreshIframe1() {
$("#messages")[0].src = $("#messages")[0].src;
}
和我有这个的php页面:
<?php
session_start();
require_once("../../lib_php/librairie.php");
require_once("../../config/connexion.php");
//header('Content-Type: application/json; charset=utf8');
/**
* Fonction qui retourne une liste de messages
* @return int
*/
function fetchMessages() {
if (isset($_POST['from'])) {
$from = mysql_real_escape_string($_POST['from']);
$to = mysql_real_escape_string($_POST['to']);
$query = "SELECT `id`, `from`, `to`, `message`, `sent`, `read`, `direction`
FROM `cometchat`
WHERE `from` = {$from} || `from` = {$to} || `to` = {$to} || `to` = {$from}";
return $query;
} else {
return null;
}
}
if (isset($_POST['from'])) {
$liste_messages = fetchMessages();
if (!is_null($liste_messages)) {
$result_message = mysql_query($liste_messages);
while ($mess = mysql_fetch_assoc($result_message)):
?>
ici
<?php
endwhile;
}
}
?>
但是现在没有任何效果我什至没有我的消息,而在 phpMyAdmin 中运行我的查询的回声返回给我一些东西。我想我在重新加载时失去了上下文($_POST 失去了自己)
我最初会在 iframe 或 div 中显示整个对话,然后如果有新帖子,它会自动更新,这有点像 Facebook 上的消息传递系统,无需重新加载页面。
任何帮助将不胜感激。