I've created a navigation bar where an admin can add and remove links with a simple form. When the form is submitted to add a link, an AJAX call is made to add the new information into the mySQL database. As part of the callback function, the navigation bar is updated to include the new link using the following line of code:
$('.nav ul').load('/getnav.php');
The file getnav.php is as follows:
<?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>
';
}
?>
The issue is that when the nav bar is updated in the AJAX call, only the links are being shown, and the delete buttons disappear. $_SESSION['valid']
is set, so the code right after the if SHOULD be executed. However, it's that if's code that is missing after the AJAX call is made. The only explanation I have for this is that when getnav.php is being loaded into .nav ul
, the session isn't being accessed. Anyone know why that is?