任何建议将此欢迎信息缩短:
<?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)+设置会话
我怎样才能使这更简单?
答案 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在这种情况下的作用。我将logout
和intro
分为不同的元素,但如果您愿意,可以将它们重新组合在一起。
<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中。