PHP:使我的代码更简单/更短的欢迎消息

时间:2011-01-05 20:52:01

标签: 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,则接下来,如果是,则显示瑞典语中的“注销”,如果不是,则引入“Hi,NAME”,然后更改为“注销“5秒后(jquery)+设置会话

我怎样才能使这更简单?

2 个答案:

答案 0 :(得分:0)

您可以将jQuery代码减少到:

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

但至于你的其余代码,我看不出任何方法让它更小或更简单

答案 1 :(得分: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>      

我不确定如果我的fadeIn / fadeOut完全一样,但你知道在哪里改变它。我希望这里的分离使代码更清晰,如果不一定更短。所有会话信息都可以随时使用,因此您需要担心的唯一控制流程是在javascript中。