【发布时间】:2012-02-09 02:34:30
【问题描述】:
我正在尝试找到一种方法来获取用户创建的关键字数组并过滤 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 数组,然后使用 keywords 数组过滤来自 JSON 对象的 data.log,然后附加到屏幕上。
我还有一个不起作用的删除过滤器功能。也许有人可以帮助我。
【问题讨论】:
标签: php javascript jquery arrays filter