사용자 생성자 인 키워드 배열을 가져 와서 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