【问题标题】:refresh PHP page using ajax and echo PHP variable [closed]使用ajax和echo PHP变量刷新PHP页面[关闭]
【发布时间】:2013-12-27 17:09:47
【问题描述】:

我有一个 PHP 页面,其中有一些查询,我希望能够在我的 index.php 中包含这个 PHP 页面并通过自动刷新来回显结果(有点像堆栈溢出收件箱)

我如何使用 Javascript/Ajax 做到这一点?

【问题讨论】:

    标签: javascript php ajax


    【解决方案1】:

    嗯.. 我可以提供的解决方案之一是 JavaScript 函数 setInterval();和 jQuery lib 来更新 div。例如: javascript文件:

    $(document).ready(function(){
      setInterval(function(){
        $.get('your.php',function(response){
          $('#your_element_id').html(response);
        });
      },2000);
    });
    

    这只是解决方案。请记住,您可以以各种方式使用这种方式。 更新几个 div 的示例。

    【讨论】:

      【解决方案2】:

      只需在您的页面上放置一些容器,每 30 秒使用 ajax 检查服务器是否有新邮件、更新、错误等,如果有任何数据,请将其设置到 DOM

      【讨论】:

        【解决方案3】:

        这是一个纯 javascript 示例,说明如何使用 ajax 从同一页面加载内容

        index.php

        <?php
        if($_GET['time']){ echo date('Y-m-d H:i:s'); }else{
        ?>
        <!doctype html>
        <html>
        <head>
        <meta charset="utf-8">
        <title>tit</title>
        <script>
        var result;
        function ajax(a,b,c){//url,function,just a placeholder
         c=new XMLHttpRequest;
         c.open('GET',a);
         c.onload=b;
         c.send()
        }
        function handler(){
         // loading gif
         result.innerHTML='';
         result.appendChild(document.createElement('img')).src='loading.gif';
         ajax('index.php?time=yes',displayResult);
        }
        function displayResult(){
         //this removes the loading gif
         result.innerHTML=this.response;
        }
        window.onload=function(){
         result=document.getElementById('result');
         document.getElementById('button').addEventListener('click',handler,false);
        }
        </script>
        </head><body>
        <button id="button">Get Time</button>
        <div id="result"></div>
        </body></html>
        <?php } ?>
        

        现在每 30 秒检查一次,在 window.onload 函数中添加此代码

        var timer=setInterval(handler,30000)
        

        如果您有任何问题.. 就问吧。

        更好的方法是使用 SSE(服务器发送事件)或 websockets。

        https://stackoverflow.com/a/20689738/2450730

        【讨论】:

        • 这是显示包含页面的html源代码
        • 是的全部内容...将 result.textContent 更改为 result.innerHTML
        • 最好的方法是从 php 只加载需要的数据并用 javascript 创建结构
        • innerHTML 也不安全。
        • 我在每个页面上都有一个加载 gif,第一次刷新 div 时它会显示页面加载 gif,但它不会消失
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-03-30
        • 2014-08-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多