【问题标题】:Load content Ajax without lost the last content加载内容 Ajax 不会丢失最后的内容
【发布时间】:2020-05-31 02:40:00
【问题描述】:

我使用 ajax 加载内容而不刷新,但如果我转到另一个页面然后我来了,我会丢失我拥有的最后一个内容,我想保存此信息。

现在我有了这个

<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>

【问题讨论】:

  • 你在点击事件时加载数据,它与页面加载事件无关,所以当你离开和回来时,你的页面正在重新加载,所以你丢失了数据,你不能再得到它直到您再次触发该触发器。如果您想保留这些信息,请在页面加载事件中触发它。
  • 这对你有帮助,请告诉我,Solution

标签: javascript php html ajax


【解决方案1】:

您需要使用 ajax 导航到您的整个页面或注册用户已加载内容的内容 ID,然后将该内容默认加载到主页。

示例(您必须根据您的上下文进行更改):

通过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
}
?>

你的主页

<?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'];
}
?>

当你不再需要那个“历史”时,你只需要打电话给unset($_SESSION['loaded_demand'])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-07
    • 2015-10-24
    • 1970-01-01
    • 2011-10-31
    • 2013-08-06
    相关资源
    最近更新 更多