1

标题可能有点混乱,所以让我解释一下。

我有一个网站,它有一个侧面板,其中包含有关用户的信息、用户可以做的事情等。当用户没有登录时,这个侧面板成为登录或注册的区域。

代码是:

<?php
if($user->loggedIn)
{
?>
<!-- side-panel for logged in users here -->
<?php
}
else
{
?>
<!-- login/registration etc -->
<?php
}
?>

我想要做的是在用户单击使用 AJAX 登录时再次加载这段代码,并使用 jQuery 效果(可能是淡入淡出)使侧面板从登录/注册顺利过渡到闪亮的用户专用面板。

我知道如果我将该代码放在另一个文件中,并通过 AJAX 将其加载到侧面板的 div 中,我可以做到这一点......但我宁愿不为侧面板制作单独的文件。这可能吗?

4

5 回答 5

3

您可以使用 AJAX 请求加载页面,然后删除侧面板以外的数据,但重点是什么?您最好的选择是将侧面板简单地分离到自己的文件中。

哦,这也被认为是正确的做法,因此您可以编辑侧边栏而无需编辑它所在的页面。

于 2009-01-02T16:18:14.710 回答
0

如果我完全理解您的需求,您可以尝试这种方式:

$.ajax({
    type: "GET",
    url: "url", // replace 'url' with your url
    cache: false,
    success: function(data){
        alert($(data).find('#sidebar').html());
    }
});

也许可以与 $.load() 或 $.get() 一起使用,不知道。

于 2009-01-02T16:23:40.427 回答
0

您为什么反对将侧面板保存在自己的文件中?使事情更加模块化和有条理。

如果您真的反对将内容保存在文件中,您可以将内容放入数据库并在进行 AJAX 调用时查询它。

于 2009-01-02T16:24:10.597 回答
0

假设您将通过另一个调用获取实际的用户数据,您可以使用两个 div。包含用户面板 html 的 div 开始隐藏。成功登录后,隐藏登录 div 并显示用户面板 div。使用来自 AJAX 登录的数据,填写面板自定义信息。我假设 AJAX 登录调用将返回必要的信息来填写用户名和他们可以做什么。这样做只是为了让您不必为整个用户面板拉入 html。

于 2009-01-02T16:29:05.483 回答
0

您能否将查询字符串参数传递给页面,然后基于该参数仅对页面进行部分渲染(仅侧边栏)?然后只需使用您的普通 jquery/ajax 方法并包含查询字符串参数。

$.ajax(function(){
    url: MyPage.php?sidebar_only=true
    ect...
})
于 2009-01-02T16:32:09.457 回答