我创建了一个导航栏,管理员可以在其中使用简单的表单添加和删除链接。当提交表单以添加链接时,会进行 AJAX 调用以将新信息添加到 mySQL 数据库中。作为回调函数的一部分,导航栏会使用以下代码行更新以包含新链接:
$('.nav ul').load('/getnav.php');
文件 getnav.php 如下:
<?php
require('/connect.php');
$query = "SELECT id, title, url
FROM nav
ORDER BY position ASC";
$result = $mysqli->query($query);
while ($data = $result->fetch_assoc()) {
if (!empty($_SESSION['valid']))
echo ' <div class="container"><button type="button" name="'.$data['id'].'" class="delButton" alt="Delete"></button></div>
';
echo ' <a href="'.$data['url'].'" alt="'.$data['title'].'">'.$data['title'].'</a>
';
}
?>
问题是在 AJAX 调用中更新导航栏时,仅显示链接,删除按钮消失。$_SESSION['valid']
已设置,因此应该执行 if 之后的代码。但是,在进行 AJAX 调用之后缺少的是 if 的代码。我对此的唯一解释是当 getnav.php 被加载到.nav ul
时,会话没有被访问。有谁知道这是为什么?