インスタントメッセージングの需要の増加に伴い、PHPが開発したライブチャットシステムは、ウェブサイトやアプリケーションで徐々に重要なモジュールになりました。ユーザーエクスペリエンスを向上させるために、チャット履歴検索機能が特に重要になっています。この記事では、PHPチャットシステムで検索機能を構築する方法を紹介し、検索結果を適切に表示します。
HTMLおよびJavaScriptテクノロジーを介してユーザー入力インターフェイスを作成し、Ajaxを使用してキーワードリクエストをバックエンドに非同期に送信して、更新されない検索エクスペリエンスを実現します。
<input type="text" id="search-input">
<button onclick="search()">検索</button>
<script>
function search() {
var keyword = document.getElementById("search-input").value;
// Ajax请求获取検索结果
// ...
}
</script>
バックエンドは主にPDOを介してデータベースを操作し、チャットレコードからユーザーキーワードを含むコンテンツをフィルターし、最後にJSONのデータを返します。
<?php
// データベースに接続します
$pdo = new PDO('mysql:host=localhost;dbname=chat', 'root', 'password');
// 获取検索关键词
$keyword = $_POST['keyword'];
// 埋め込むSQLファジークエリ
$stmt = $pdo->prepare("SELECT * FROM chat_records WHERE content LIKE ?");
$search_keyword = "%{$keyword}%";
$stmt->bindParam(1, $search_keyword);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 戻るJSONフォーマットデータ
header('Content-Type: application/json');
echo json_encode($results);
バックエンドで返されたデータを取得した後、FrontEndはJavaScriptを介して結果リストを動的に構築して、一致するチャットコンテンツを表示します。
<ul id="search-results"></ul>
<script>
function search() {
var keyword = document.getElementById("search-input").value;
$.post('/search.php', { keyword: keyword }, function(results) {
var list = "";
for (var i = 0; i < results.length; i++) {
list += "<li>" + results[i].content + "</li>";
}
document.getElementById("search-results").innerHTML = list;
});
}
</script>
フロントエンドがリクエストを送信する限り、PHPバックエンドは結果リストデータに応答します。完全なプロセスは効率的であり、構造は明確であり、さまざまなライブチャットシステムに適しています。
<?php
// データベースに接続します
$pdo = new PDO('mysql:host=localhost;dbname=chat', 'root', 'password');
// キーワードを取得します
$keyword = $_POST['keyword'];
// 検索匹配内容
$stmt = $pdo->prepare("SELECT * FROM chat_records WHERE content LIKE ?");
$search_keyword = "%{$keyword}%";
$stmt->bindParam(1, $search_keyword);
$stmt->execute();
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 出力JSONフォーマット結果
header('Content-Type: application/json');
echo json_encode($results);
この記事の説明を通して、完全なチャットレコード検索と表示モジュールを体系的に実装します。この機能は、チャットシステムの実用性を向上させるだけでなく、ユーザーの履歴情報へのアクセスを最適化します。開発者がリアルタイムチャットシステムを構築すると、時間フィルタリング、キーワードハイライト、その他の機能など、上記の構造に基づいてよりインタラクティブな機能を柔軟に拡張できます。