2011-01-05 50 views
1

任何建議,使這個歡迎郵件短:PHP:讓我的代碼更簡單/短歡迎消息

<?php 
if(isset($_SESSION['user_id'])) { 
    if(isSet($_SESSION['1stTime'])){ 
    ?> 
    <strong id="welcome" style="font-size: 10px;"> 
    <a href="logout.php"> 
    Logga ut 
    </a> 
    </strong> 
    <?php 
    }else{ 
    $_SESSION['1stTime'] = time(); 
    ?> 
    <script> 
    $(document).ready(function() { 
    $("#welcome").fadeIn("slow"); 
    setTimeout(function(){ 
    $("#welcome").fadeOut("slow"); 
    setTimeout(function(){ 
    $("#welcome").html("<a href='logout.php'>Logga ut</a>"); 
    $("#welcome").fadeIn(); 
    }, 800); 
    }, 5000); 
    }); 
    </script> 
    <strong id="welcome" style="display: none; color: #FFF; font-size: 10px;">Hej, <?php echo $FULL; ?>!</strong> 
    <?php 
    } 
    } 
    ?> 

首先,它會檢查,如果你在接下來簽署,如果1stTime設置,如果是則顯示「。退出」在瑞典,如果它不是,然後介紹‘嗨,NAME’,然後更改爲‘5秒(jQuery的)後退出’+設置會話

我怎樣才能使這個更簡單?

回答

0

您可以減少您的jQuery代碼到這一點:

$(document).ready(function() { 
     $("#welcome").fadeIn("slow").delay(5000).fadeOut("slow").delay(800).html("<a href='logout.php'>Logga ut</a>").fadeIn(); 
    }); 

至於你的代碼的其餘部分,我看不出有什麼辦法讓它更小或更簡單

0

我會找到它更簡單地分離您的JavaScript,PHP和靜態HTML,而不是讓它們全部交織在一起。幾乎所有的「工作」在這裏都是javascript,我們需要的只是PHP的一些參數變量,並可能設置一個。

我要使用隱藏的輸入bc我不在乎小的小php標籤,但我認爲它有助於演示PHP和JS在這種情況下的角色。我將logoutintro分成了不同的元素,但那不是太重要,如果您願意,可以再次將它們放在同一個元素中。

<strong id="logout" style="font-size: 10px;"> 
    <a href="logout.php"> Logga ut </a> 
</strong> 

<strong id="intro" style="color: #FFF; font-size: 10px;"> 

</strong> 

<?php 
    echo "<input type='hidden' id='hasUserId' value='" . isset($_SESSION['user_id'] . "' />"; 
    echo "<input type='hidden' id='hasPriorLogin' value='" . isset($_SESSION['1stTime'] . "' />"; 

    echo "<input type='hidden' id='fullName' value='" . isset($FULL) ? $FULL : 'noname' . "' />"; 

    if (!isset($_SESSION['1stTime']) $_SESSION['1stTime'] = time(); 
?> 

<script>   
    $(document).ready(function() { 

     $("#intro").hide(); $("#logout").hide(); //start with both strong blocks hidden 

     if ($("#hasUserId").val()) //everything is dependent on being logged in 
     { 
      if ($("#hasPriorLogin").val()) //not the users first time 
      { 
       $("#logout").fadeIn("slow"); 
      } 
      else       //the users first time 
      { 
       $("#intro").html("Hey" + $("#fullName").val() + "!"); 
       $("#intro").show(); 
       $("#intro").fadeOut("slow").delay(5000); 
       $("#logout").fadeIn("slow").delay(5800); 
      } 
     } 
    });  
</script>  

我不確定如果我得到了你的淡入/淡出的完全一樣,但你看到哪裏去改變它。我希望這裏的分離使得代碼更加清晰,如果不一定更短的話。所有的會話信息都可以立即使用,所以您唯一需要擔心的控制流程就是在javascript中。