私は、ユーザcreatedaであるキーワードの配列を取得し、JSON配列をフィルタリングし、その結果を画面に追加する方法を見つけようとしています。キーワードを使用してJSON配列オブジェクトをフィルタリングする方法は?
以下は私が使用している実際のコードです。テーリング情報を引っ張る
var keywords= [];
var interval = "";
var pointer = '';
var scroll = document.getElementById("tail_print");
$("#filter_button").click(
function(){
var id = $("#filter_box").val();
if(id == "--Text--" || id == ""){
alert("Please enter text before searching.");
}else{
keywords.push(id);
$("#keywords-row").append("<td><img src=\"images/delete.png\" class=\"delete_filter\" /> " + id + "</td>");
}
}
);
$(".delete_filter").click(
function(){
($(this)).remove();
}
);
function startTail(){
clearInterval(interval);
interval = setInterval(
function(){
$.getJSON("ajax.php?function=tail&pointer=" + pointer + "&nocache=" + new Date(),
function(data){
pointer = data.pointer;
$("#tail_print").append(data.log);
scroll.scrollTop = scroll.scrollHeight;
});
}, 1000);
}
PHPコードは:
function tail(){
$file = "/path/to/the/log/filelog.log";
$handle = fopen($file, "r");
clearstatcache();
if ($_REQUEST['pointer'] == '') {
fseek($handle, -1024, SEEK_END);
} else {
fseek($handle, $_REQUEST['pointer']);
}
while ($buffer = fgets($handle)) {
$log .= $buffer . "<br />\n";
}
$output = array("pointer" => ftell($handle), "log" => $log);
fclose($handle);
echo json_encode($output);
}
本の全体の目的は、ユーザーがログの結果をフィルタリングできるようにすることです。ユーザーはstartTail()
を開始するアクションを実行し、$.getJSON()
はPHP関数で構築されたJSONオブジェクトを取得し、結果を出力します。完璧に動作します。今度は、ユーザーに着信テーリングアイテムをフィルタリングするオプションを与えたいと思います。ユーザーがフィルタボタンをクリックすると、jQueryがフィルタテキストを受け取り、keywords
配列に追加します。のJSONオブジェクトは、keywords
配列を使用してフィルタリングされ、画面に追加されます。
私はまた動作していない削除フィルタ機能を持っています。多分誰かがそれを手伝ってくれるかもしれません。
ありがとうございました。私はPHPコードを追加しました。私がサーバー側でフィルタリングする必要があると思うなら、PHP関数を変更するにはどうしたらいいですか? – amlane86
ログファイル内のデータはどのように見えますか?何を除外していますか?キーワードをサーバーに渡して、特定のログエントリが一致した場合は、そのキーワードを含めません。 – aepheus