0

私は自分のサイトで一種のメールを作成しようとしています。

だから私は3つの列を含むテーブルを持っています.2つのintフィールド(from、to)とタイムスタンプ(送信日)を持つ(簡単にするために、しかし実際には)としましょう

私のページの一部にto、同じ人宛てのすべてのメッセージをグループ化する group by を使用してメッセージのリストを表示します。

最終的には、メッセージをクリックしたときに会話全体を表示したいのですが、それは明らかではありません。

私はjquery ajaxを試してからiframeを試しましたが、それは良くありません。なぜなら、一方では何も返されず(ホワイトページ)、次に毎秒のリロードが良くないからです。

まず、リクエストの結果を表示したいと思います。

jquery callback でアプリケーションをどうするか分からないので、 callback を設定していません。最も簡単な方法は、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 のメッセージング システムに少し似ています。

どんな助けでも大歓迎です。

4

1 に答える 1