-1

I use ajax for load content without refresh , but if i go to another page and then i come, i lose the last content i have, and i want to save this information.

Now i have this

<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
 <script>

    $(document).ready(function() {
        var trigger =$('#nav ul li a'),
            container=$('#content');

        trigger.on('click', function() {
            var $this=$(this)
                    target=$this.data('target');
            container.load(target + '.php');
                lastTarget=target;
            return false;
            });
 });
  </script>

<nav id="nav" class="menuNav">
        <div class="logo"> <a href="index.php"> <img width="100px" src="images/logo.png"> </a> </div>
        <ul class="nav-links">
            <?php if(!isset($_SESSION["login"]) && !isset($_SESSION["loginEmpleado"])){ ?>
                <a href="formularioUsuario.php"><li class="nav">  Registrate </li></a>
                <a href="login.php"><li class="nav"> Iniciar Sesion </li></a>
            <?php } else{ ?>
                <li class="navL"><a href="#" data-target="consulta_inmuebles"> Inmuebles </a></li>
                <?php if(isset($_SESSION["loginEmpleado"])){ ?>
                    <li class="navL"><a href="#" data-target="consulta_demandas"> Demandas </a></li>
                    <li class="navL"><a href="#" data-target="consulta_contratos"> Contratos </a></li>
                <?php } if(isset($_SESSION["login"])) {  ?>
                <li class="navL"><a href="#" data-target="usuario"> Usuario </a></li>
                <?php } ?>
                <a href="desconectar.php"><li class="navL"> Cerrar Sesion</li> </a>
            <?php } ?>
        </ul>
    </nav>

<div id="content">
    <div class="bloqueI">
        <h2> Descripcion: </h2>
        <p> Aquí se mostraria informacion general sobre la empresa, asi como los inmuebles existentes. </p>
    </div>
</div>
  • You load the data on click event, it is not related to the page load event, so when you leave and come back, your page is reloading so you lose data, you can't get it again until you fire that trigger again. In case you want to keep these information trigger it on the page load event. – Hardood May 30 '20 at 16:09
  • This will help you, let me know, [Solution](https://stackoverflow.com/questions/7956563/remember-ajax-added-data-when-hitting-back-button) – Rajneesh Tiwari May 30 '20 at 16:19

1 Answers1

0

What you need is to use ajax navigation to your entire page OR registering the content ID of what was already loaded by the user and then, make this content be loaded by default at main page.

Example(you have to change it according your context):

Page that gets content by ajax

<?php
session_start();
if(!isset($_SESSION['loaded']))
   $_SESSION['loaded']=array();

loading_content(){

  // loads demands, contracts etc
  if(!in_array($database['demand_id'],$_SESSION['loaded_demands']);
     $_SESSION['loaded_demands'][]=$database['demand_id']; //store on session if it isn't there already
}
?>

Your main page

<?php
session_start();
if(isset($_SESSION['loaded_demands']) && sizeof($_SESSION['loaded_demands'])>0){
    $data = your_database_function("SELECT * FROM table_demands WHERE demand_id IN (".implode(',',$_SESSION['loaded_demands']).")");

    while($result = $data)
      echo 'Data stored => '.$result['column_name'];
}
?>

When you doesn't need that "history" anymore, you only need to call unset($_SESSION['loaded_demand']).

Éder Rocha
  • 1,538
  • 11
  • 29