0

我正在使用 PHP 函数来确定正在显示哪些链接:

<?php
  //amend toplinks if logged in
  if($general->loggedIn()){ ?>
    <nav class = "memberHeaderArea">
      <ul>
        <li>
          <a href="userProfile.php?username=<?php echo $user['username'];?>">Profile<span class="user icon"></span></a>
        </li>
        <li>
          <a href="userLogout.php">Log out<span class="lock icon"> </span></a>
        </li>
      </ul>
    </nav>
  <?php
    //toplinks for when not logged in
  }else{ ?>

我刚刚更改了我的登录结构以使用 Ajax,它可以完美地工作,但导航除外。在调用页面刷新之前,它仍然显示登录/注册。显然使用 Ajax 的原因是为了避免页面刷新,但是有没有办法可以在成功函数中更新这些链接?

success: function(data) {
  $("#statusLogin").hide();
  if(data.success == true){
    $('#loginContent').slideToggle();
  }else{
    // alert("data.message... " + data.message);//undefined
    $("#error").show().html(data.message);
  }

从我发现的情况来看,我可能需要分配导航的 id,然后使用 Ajax / jQuery 来定位它。但我不确定如何。非常感谢任何帮助。

4

1 回答 1

0

这是一个基本的(和虚拟的)东西,用于在页面加载后使用 AJAX 检查登录状态。可能你想要更认真的检查if(true)和一个echo电话,但它会是这样的:) 检查下面的小提琴,所以你也可以看到 html 和 css ......

$.getJSON('/echo/json/').done(function (data) {
    console.log("Call returned");
    if (true){
        //successful login
        $('#loggedin').slideToggle();
    }else {
        //unsuccessful login
        $('#login').slideToggle();
    }
}).fail(function (data) {
    console.log("Call failed");
    $('#login,#error').slideToggle();
}).always(function (data) {
    console.log("Always running");    
});

JSFiddle

于 2013-07-21T08:01:30.813 回答