Как добавить в textarea с PHP и затем обновить текстовое поле?
СПАСИБО
изменить: Он должен быть запущен сервером из кода PHP
Самый простой подход - иметь функцию javascript, которая опросит php script с помощью ajax - скажем каждые 10 секунд. Вы можете добавить временную метку в качестве параметра функции php, чтобы она только возвращала последние записи журнала.
При возврате вызова ajax вы можете добавить полученный текст в текстовое поле, используя javascript.
Я мог бы выкупить какой-нибудь образец кода, если вам нравится?
Итак, вот HTML файл - он имеет функцию, чтобы сделать вызов AJAX script - log.php, который возвращает некоторые вещи (в этом примере это очень простая строка текста), а затем добавьте это в текстовой области.
Когда загружается script, мы устанавливаем таймер для запуска каждые 1000 миллисекунд (очевидно, измените это в соответствии с вашими потребностями).
У нас также есть функция "отменить обновления" и "начать обновление".
Итак - поместите файл html и файл php (который вам нужно вызвать log.php - или назовите его, что вам нравится, и измените код) в тот же каталог на вашем веб-сервере и посмотрите, что произойдет!
<!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 script (очень простой)...
<?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";
?>