Как добавить в текстовое поле? - PullRequest
0 голосов
/ 26 апреля 2011

Как добавить текстовую область с помощью PHP, а затем обновить текстовую область?

СПАСИБО

редактировать: Должен быть запущен сервером из кода PHP

1 Ответ

1 голос
/ 26 апреля 2011

Самый простой подход - использовать функцию javascript, которая опрашивает скрипт php с помощью ajax - скажем, каждые 10 секунд. Вы можете добавить метку времени в качестве параметра в функцию php, чтобы она возвращала только самые последние записи журнала.

Когда возвращается вызов ajax, вы можете добавить полученный текст к текстовой области, используя javascript.

Я мог бы выловить пример кода, если хотите?

Итак, вот HTML-файл - он имеет функцию для вызова AJAX-скрипта - log.php, который возвращает некоторые вещи (в данном примере это очень простая строка текста), а затем добавляет это в текстовую область .

Когда скрипт загружается, мы устанавливаем таймер на срабатывание каждые 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 (очень простой) ...

    <?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";


?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...