【发布时间】:2018-07-27 11:47:48
【问题描述】:
我尝试使用 AJAX 在 PHP 中的 $_SESSION 变量中提供和检索数据。
这是我的场景:
一台笔记本电脑正在浏览保存在 srv-web 服务器上的 admin.php 网页。该服务器 (raspberry PI) 本身插入一个用作仪表板的大屏幕上,并且网页 index.php (localhost) 显示在屏幕上。
Hello World 消息存储在$_SESSION['msg'] 变量中。
admin.php 中的表单使用用户输入作为值来提供该变量
admin.php
<?php
session_start();
if (isset($_POST['msg'])) {
$_SESSION['msg'] = $_POST['msg'];
echo $_SESSION['msg'];
}
?>
<form action="admin.php" method="post">
<input type="text" name="msg" />
<input type="submit" />
</form>
到目前为止,仪表板使用<META http-equiv="refresh" content="3; URL=index.php"> 刷新管理员笔记本电脑发送的消息。
此解决方案无法再使用,因为网页上的某些数据无法刷新。我考虑过在 PHP 旁边使用 ajax 来让这个设置工作。这是我到目前为止所拥有的:
index.php
<?php session_start(); ?>
<html>
<head>
<script type="text/javascript" src="jquery-3.3.1.min.js"></script>
</head>
<body>
<script type="text/javascript">
var session;
$.ajaxSetup({cache: false})
$.get('getsession.php', function (data) {
session = data;
});
</script>
<?php echo $_SESSION['msg']; ?>
</body>
</html>
getsession.php
<?php
session_start();
print json_encode($_SESSION['msg']);
?>
您可以猜到,我不是 javascript 开发人员,我无法让这段代码工作。我在网上也没有找到(我自己还不会写这种代码,有点紧迫)。
谁能帮我从$_SESSION['msg']检索数据并在不刷新index.php的情况下显示它?
【问题讨论】:
-
你卡在哪里了?看起来你的代码还没有完成。您需要将
session的内容分配给某个dom 元素。 (例如document.getElementById('someid').textContent = session;)并且您需要反复发出ajax请求。 (例如setInterval) -
@RolandStarke 我已将整个 javascript 包含在
setInterval(function(){ ... }, 3000);中,并在函数中添加了document.getElementById('someid').textContent = session;,并在主体内添加了<h1 id='someid'></h1>,但它仍然不起作用。我做错了什么? -
您能否指定“不工作”您可以看到使用 F12 打开开发者工具的错误。
标签: php jquery ajax session dashboard