如何附加到textarea?

时间:2011-04-26 08:19:44

标签: php javascript ajax

如何使用PHP附加到textarea然后刷新textarea?

谢谢你

编辑: 它应该是从PHP代码

触发的服务器

1 个答案:

答案 0 :(得分:1)

最简单的方法是使用javascript函数,使用ajax轮询php脚本 - 比如说每10秒一次。您可以将时间戳作为参数添加到php函数中,以便它只返回最新的日志条目。

当ajax调用返回时,您可以使用javascript将结果文本附加到textarea。

如果你愿意,我可以找出一些示例代码吗?

所以,这是一个HTML文件 - 它有一个函数来对脚本进行AJAX调用 - log.php返回一些东西(在这个例子中它是一个非常简单的文本行),然后将它附加到文本区域

当脚本加载时,我们设置一个计时器,每1000毫秒触发一次(显然根据你的需要改变它)。

我们还有“取消更新”功能和“开始更新”。

所以 - 将html文件和php文件(你需要调用log.php - 或者你喜欢的方式调用它并更改代码)放到web服务器上的同一个目录中,看看会发生什么!

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


?>