如何使用PHP附加到textarea然后刷新textarea?
谢谢你
编辑: 它应该是从PHP代码
触发的服务器答案 0 :(得分:1)
最简单的方法是使用javascript函数,使用ajax轮询php脚本 - 比如说每10秒一次。您可以将时间戳作为参数添加到php函数中,以便它只返回最新的日志条目。
当ajax调用返回时,您可以使用javascript将结果文本附加到textarea。
如果你愿意,我可以找出一些示例代码吗?
所以,这是一个HTML文件 - 它有一个函数来对脚本进行AJAX调用 - log.php返回一些东西(在这个例子中它是一个非常简单的文本行),然后将它附加到文本区域
当脚本加载时,我们设置一个计时器,每1000毫秒触发一次(显然根据你的需要改变它)。
我们还有“取消更新”功能和“开始更新”。
所以 - 将html文件和php文件(你需要调用log.php - 或者你喜欢的方式调用它并更改代码)放到web服务器上的同一个目录中,看看会发生什么!/ p>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
var http = createRequestObject();
var updateInt=self.setInterval("updateLog()",1000);
function startAutoUpdate(){
if(updateInt==""){
updateInt=window.setInterval("updateLog()",1000)
}else{
stop_Int()
}
}
function stopAutoUpdate(){
if(updateInt!=""){
window.clearInterval(updateInt)
updateInt=""
}
}
function createRequestObject() {
var objAjax;
var browser = navigator.appName;
if(browser == "Microsoft Internet Explorer"){
objAjax = new ActiveXObject("Microsoft.XMLHTTP");
}else{
objAjax = new XMLHttpRequest();
}
return objAjax;
}
function updateLog(){
http.open('get','log.php');
http.onreadystatechange = updateNewContent;
http.send(null);
return false;
}
function updateNewContent(){
if(http.readyState == 4){
document.getElementById('log').innerHTML = document.getElementById('log').innerHTML + http.responseText;
}
}
</script>
</head>
<body>
<h2>Log</h2>
<textarea cols="80" rows="10" name="log" id="log"></textarea>
<span onclick="updateLog()">Update</span><br>
<span onclick="stopAutoUpdate()">Cancel Auto Update</span><br>
<span onclick="startAutoUpdate()">Start Auto Update</span><br>
</body>
</html>
这是php脚本(非常简单)......
<?PHP
/* Log responder script
*
* When invoked this script returns log entries
* as this is a sample it just returns a couple of random items
*
*/
echo "Log Entry ".date("d/m/y h:i:s")."\n";
?>