HTML问题解决-退出登录后,页面只有部分刷新到登录界面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HTML问题解决-退出登录后,页面只有部分刷新到登录界面相关的知识,希望对你有一定的参考价值。

参考技术A

我是在使用iframe是遇到这个问题的,登录按钮引用的是另一个header.html的文件,点击退出登录后,发现只有这个引用header.html的iframe的页面刷新到登录界面,其他的部分还停留在原来的界面。

解决方法
在点击退出跳转的链接增加一个target属性,并设置值为"_top"。target="_top"

_top
这个目标使得文档载入包含这个超链接的窗口,用 _top 目标将会清除所有被包含的框架并将文档载入整个浏览器窗口。
例如:

最后验证是可以的。

Ajax 登录后动态更新 PHP 生成的元素

【中文标题】Ajax 登录后动态更新 PHP 生成的元素【英文标题】:Dynamically update PHP generated elements after Ajax login 【发布时间】:2018-06-29 08:03:29 【问题描述】:

我通过 Ajax 无限滚动在页面 (cmets) 上加载内容,并且我也使用 Ajax 登录/退出。现在成功登录后,我想根据用户喜欢或不喜欢的内容更新回复或喜欢按钮。

简单的方法是不使用 Ajax 登录/退出或刷新页面,因为我检查用户喜欢/不喜欢 PHP 的内容,如果页面没有得到刷新,这些脚本不会再次触发。

但是如果我刷新页面,所有加载的 cmets 都消失了,用户需要再次滚动。我发现的一种解决方案是使用load() 方法用脚本刷新div,但我不确定这是要走的路。那么基本上我如何在从 PHP 生成的 Ajax 登录后动态更新页面上的元素?

让我解释得更好:

假设我有一个 PHP 脚本来进行这项检查:

<?PHP
 $q = $db->query("SELECT who_liked FROM likes WHERE(com_liked = com_id AND who_liked = curent_user_id)"); //actual query uses prepared statments, this is for example
 $count = $q->rowCount();

 if($count > 0)
  echo "<style> #like_btnbackground-color: green; </style>";
 
?>

因此,如果用户未登录,所有喜欢/不喜欢按钮都是灰色的。现在通过Ajax登录,用户使用电子邮件/用户名和密码登录,登录会话启动用户名,个人资料图像根据用户ID从数据库中选择并显示在页面/导航栏上.现在我需要检查一下用户喜欢什么等等,我应该在 Ajax 响应中进行检查吗?我应该使用load() 来刷新 cmets 的喜欢/不喜欢以及检查它的脚本吗?我应该将所有 php 脚本放在 Ajax 响应中,以便它们在成功登录时触发吗?(我认为女巫是要走的路)

例如:

    ,success: function(response) // php scripts with the sql query for all the checks

【问题讨论】:

我对你的问题有点困惑。您希望能够保留用户登录后已加载的已加载 cmets? @JeanPaul98 是的,如果我使用 ajax 登录它可以工作,但我还想更新用户喜欢或不喜欢的 cmets 上的喜欢/不喜欢按钮 如果我没记错的话,您想在 AJAX 请求的响应事件中切换喜欢/不喜欢按钮,并且还想识别喜欢和不喜欢的按钮吗? 你还需要防止双重喜欢吗? 【参考方案1】:

试试下面的代码,

在登录响应中发送一个 JSON 编码的数组,

<?PHP

 $q = $db->query("SELECT who_liked FROM likes WHERE(com_liked = com_id AND who_liked = curent_user_id)"); //actual query uses prepared statments, this is for example
 $count = $q->rowCount();

 if($count > 0)
  $response = ['success' => true];
  else 
     $response = ['success' => true];
 

 echo json_encode($response);

?>

使用下面的 CSS 脚本,

<style type="text/css">
    .like_btn
        background-color: green;
    

    .like_btn.liked 
        background-color: orange;
    

    .like_btn.not-liked 
        background-color: grey;
    
</style>

添加

不喜欢

在 PHP 页面加载时将 CSS 类用于不喜欢的按钮,如下所示,

<button class="like_btn not-liked">Like Button</button>

然后您将能够识别喜欢/不喜欢和不喜欢的按钮。

使用

喜欢

喜欢按钮的 CSS 类。因此,您可以随时使用 JavaScript 切换按钮。

<button class="like_btn liked">Like Button</button>

最后是 JQuery AJAX 脚本,

<script type="text/javascript">
    $.ajax(
        url: '/path/to/file',
        type: 'default GET (Other values: POST)',
        dataType: 'json',
        data: param1: 'value1',
        success:function(res) 
            // On Login Success
            if(res.success) 
                $('.like_btn').toggleClass('not-liked');
            
        
    );
</script>

如果您需要进一步说明,请随时离开 cmets。

【讨论】:

以上是关于HTML问题解决-退出登录后,页面只有部分刷新到登录界面的主要内容,如果未能解决你的问题,请参考以下文章

刷新页面后,我退出了吗?为啥?

刷新后登录会话被破坏

关闭/刷新浏览器,刷新页面发送请求解决方案

关闭/刷新浏览器,刷新页面发送请求解决方案

Ajax 登录后动态更新 PHP 生成的元素

HTML 中 嵌套iframe 不断刷新 登录页面 ,此页面会过期,如果会,怎么解决