使用ajax和echo PHP变量刷新PHP页面[关闭]

Posted

技术标签:

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

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

我如何使用 javascript/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://***.com/a/20689738/2450730

【讨论】:

这是显示包含页面的html源代码 是的全部内容...将 result.textContent 更改为 result.innerHTML 最好的方法是从 php 只加载需要的数据并用 javascript 创建结构 innerHTML 也不安全。 我在每个页面上都有一个加载 gif,第一次刷新 div 时它会显示页面加载 gif,但它不会消失

以上是关于使用ajax和echo PHP变量刷新PHP页面[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

使用 AJAX 和 PHP 提交表单并带有成功响应文本而不刷新页面

如何在当前页面用php 获取js 变量的值

使用ajax将表单提交给php而不刷新页面

php ajax返回无故刷新页面

AJax 变量未发送到 php 变量

用php / ajax上传图像正在刷新页面