【问题标题】:How to refresh site if $_SESSION variable has changed如果 $_SESSION 变量已更改,如何刷新站点
【发布时间】:2012-09-25 15:25:14
【问题描述】:

当我点击一个链接时,我正在从数据库中写入我的 $_SESSION 变量。

public function getProjectById($id){
  $query="SELECT * FROM projects WHERE id=\"$id\"";
  $result=mysql_query($query);
  $num=mysql_numrows($result);

  while ($row = mysql_fetch_object($result)) {
    $_SESSION['projectid'] = $row->id;
    $_SESSION['projecttitle'] = $row->title;
    $_SESSION['projectinfo'] = $row->info;
    $_SESSION['projecttext'] = $row->text;
    $_SESSION['projectcategory'] = $row->category;
  }
}

现在我的变量被覆盖了,我想在我的 index.php 中显示这些变量,如下所示:

<div id="textContent">
   <?php
    if(isset($_SESSION['projecttext']) && !empty($_SESSION['projecttext'])) {
        echo $_SESSION['projecttext'];
    }else {
        echo 'No text';
    }
?></div>

当然,我的页面不会自动刷新。我该怎么做?

编辑:调用代码:

$(document).on("click", ".sublink", function(){
    var subsite = $(this).data('subsite');
    var category = $(this).data('category');
    var title = $(this).data('title');
    var info = category + "/" + title;
    var lower = info.toLowerCase();
    var nospaces = lower.split(' ').join('');
    $('#imageContent').load('php/getImages.php?info='+nospaces);
    $('#textContent').load('php/getProjectById.php?id='+subsite);
});

【问题讨论】:

  • “现在我的变量已被覆盖”是什么意思?什么时候发生?
  • 我的意思是它被我数据库中的新数据所取代。当我点击我的链接时会发生这种情况。但它不会刷新图形布局。文字不会改变

标签: php mysql session refresh


【解决方案1】:

有几种方法可以实现这一点(javascript 替换您已经对用户可见的 html 代码,或用于刷新整个页面),但我猜您的函数调用是由 onclick 触发的(调用特定的 php-page ) 你可能会用Meta Refresh 做得最好

重新加载整个页面。 请注意,现在这被认为是不受欢迎的;-)

编辑:像这样:

public function getProjectById($id){
  $query="SELECT * FROM projects WHERE id=\"$id\"";
  $result=mysql_query($query);
  $num=mysql_numrows($result);

  while ($row = mysql_fetch_object($result)) {
    $_SESSION['projectid'] = $row->id;
    $_SESSION['projecttitle'] = $row->title;
    $_SESSION['projectinfo'] = $row->info;
    $_SESSION['projecttext'] = $row->text;
    $_SESSION['projectcategory'] = $row->category;
  }
// everything done here, do a meta refresh here
?> <meta http-equiv="refresh" content="0;URL='http://example.com/'"> <?php
// worse alternative using .. echo("<meta....
}

【讨论】:

  • 难道不能通过php实现吗?最好是在我阅读我的结果之后(在 while 循环之后)。是的,我的链接从 javascript 调用 php onclick。
  • 是的,请参阅编辑。只需将 example.com 替换为您的网址(index.php 或其他内容)
  • 嗯没有效果:7
  • 我之前有一个 content="5...,这意味着重新加载需要 5 秒(编辑为 0 以立即执行)。但可能仍然无法正常工作。你能编辑你的在你的帖子中调用代码?你有 onclick 的位置
猜你喜欢
  • 2011-08-23
  • 1970-01-01
  • 1970-01-01
  • 2022-12-05
  • 2021-04-10
  • 2017-06-02
  • 2019-08-07
  • 1970-01-01
  • 2015-07-16
相关资源
最近更新 更多