【问题标题】:The sessions only store data for a second before being changed the last sessions value会话在更改最后一个会话值之前仅存储一秒钟的数据
【发布时间】:2018-01-26 16:31:38
【问题描述】:

当我单击Sort By Date Created 按钮时,字符串date 被传递给函数sort() 并且警报1(参见代码)打印字符串date。 字符串date 存储在第一个if 语句的会话中,警报2 打印date。问题是 date 只是临时存储,警报 3 总是提醒 service,无论类型如何。如果我更改 if 语句的顺序,最后一个 if 语句的字符串总是以某种方式存储在会话中。

<?php session_start(); ?>
<html>
<head>
  <script>

   function sort(type){

     alert('<?php echo $_SESSION['sort']; ?>');  ///ALERT 1

     if (type == 'date'){
       <?php $_SESSION['sort'] = 'date'; ?>
       alert('<?php echo $_SESSION['sort']; ?>'); ///ALERT 2
     }
     else if (type == 'cost'){
       <?php $_SESSION['sort'] = 'cost'; ?>
       alert('<?php echo $_SESSION['sort']; ?>');
     }
     else if (type == 'service'){
       <?php $_SESSION['sort'] = 'service'; ?>
       alert('<?php echo $_SESSION['sort']; ?>');
     }

     alert('<?php echo $_SESSION['sort']; ?>'); ///ALERT 3
  }

 </script>
</head>
<body>
  <input type="button" onclick="sort('date');" value="Sort By Date Created">
  <input type="button" onclick="sort('cost');" value="Sort By Cost">
  <input type="button" onclick="sort('service');" value="Sort By Service">
</body>
</html>

【问题讨论】:

    标签: javascript php html session session-variables


    【解决方案1】:

    您对客户端代码和服务器端代码之间的区别感到困惑。您基本上已经编写了以下代码:

    alert('service');
    <?php
        $_SESSION['sort'] = 'date';
        $_SESSION['sort'] = 'cost';
        $_SESSION['sort'] = 'service';
    ?>
    if (type == 'date'){
    
        alert('service'); ///ALERT 2
    }
    else if (type == 'cost'){
    
        alert('service');
    }
    else if (type == 'service'){
    
        alert('service');
    }
    

    PHP 不尊重您的 javascript if 语句。 PHP 只会编译成一个静态网页,这是我编写的代码的后半部分。

    我觉得对于 StackOverflow 来说,试图解释客户端代码和服务器端代码之间差异的答案有点宽泛和冗长,但是关于该主题有很多资源。

    【讨论】:

    • 感谢您的帮助。我将尝试使用 GET 将数据传递到另一个页面并将其存储在那里:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-03-21
    • 2021-06-21
    • 1970-01-01
    相关资源
    最近更新 更多