2011-01-05 10 views
1

Jeder Vorschlag, diese Begrüßungsnachricht kürzer zu machen:PHP: Auf meinem Code einfacher/kürzere Begrüßungsnachricht

<?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 
    } 
    } 
    ?> 

Zuerst überprüft es, ob Sie in nächster unterzeichnet werden, wenn 1stTime gesetzt ist, wenn es dann "wird angezeigt. Abmelden "auf Schwedisch, wenn es nicht ist, dann mit" Hallo, NAME "einführen und dann nach 5 Sekunden zu" Abmelden "wechseln + die Sitzung einstellen

Wie kann ich das einfacher machen?

Antwort

0

Sie können Ihren jQuery-Code, um dies zu vermeiden:

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

Aber wie für den Rest des Codes, kann ich keine Möglichkeit sehen, um es kleiner zu machen oder einfacher

0

ich es finden würde einfacher, Ihr Javascript, php und statisches HTML zu trennen, anstatt sie alle verflochten zu haben. Fast die ganze "Arbeit" hier ist Javascript, alles, was wir von PHP brauchen, sind ein paar Seission-Variablen und möglicherweise eine Einstellung.

Ich werde versteckte Eingaben verwenden bc Ich kümmere mich nicht um kleine kleine PHP-Tags, und ich denke, es hilft zu demonstrieren, was die Rollen von PHP und JS in dieser Situation sind. Ich habe logout und intro in verschiedenen Elementen gemacht, aber das ist nicht so wichtig, Sie können sie wieder zu einem machen, wenn Sie es bevorzugen.

<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>  

bin ich nicht sicher, ob ich Ihre fadeIn/fadeOut bekam genau das gleiche, aber Sie sehen, wo es zu ändern. Ich hoffe, die Trennung macht den Code klarer, wenn nicht sogar kürzer. Alle Sitzungsinformationen sind sofort verfügbar, so dass der einzige Kontrollfluss, über den Sie sich Gedanken machen müssen, im Javascript liegt.