我正在尝试在我的网站上创建一种邮件。
所以我有一个包含三列的表,让我们说(为简单起见,但实际上),两个int字段(from,to)和一个时间戳(发送日期)
我页面的一部分,我显示了一个包含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上的消息系统而没有重新加载页面。
非常感谢任何帮助。
答案 0 :(得分:0)
有一段时间你问了这个问题,希望你解决了。无论如何,我可以从你的代码和你尝试做的事情中分辨出来:
json_encode($mess);