2011-09-30 63 views
0

我想要做这样的事情。PHP和Javascript错误

<script type="text/javascript"> 
$(window).load(function(){ 
    <?php 
     if(isset($_SESSION['tagname'])) 
    { 
    ?> 
     var t = <?php echo $_SESSION['tagname'] ?>; 
     $('.tag span').html(t); 
    <?php 
    } 
    else 
    { 
    ?> 
    $('.tag').hide(); 
    <?php 
    } 
    ?> 
}); 
</script> 

现在问题是,变量't'没有设置。 如果我在该行代码中写入静态文本,那么我的代码就可以工作。

有什么我在这里做错了吗?

+0

你记得叫'session_start()'吗? – NullUserException

+0

''echo $ _SESSION ['tagname']'后面缺少分号。它解决了吗? –

+0

分号不是问题,问题是字符串值,如@ drew010所述。 – ssdesign

回答

4

如果t是一个字符串值,那么这应该是一个语法错误,因为您会在引号外使用一个字符串。

尝试

var t = '<?php echo $_SESSION['tagname'] ?>'; 
+0

完美.... :)我必须等待9分钟才能接受你的答案 – ssdesign

0

在输出要用作JavaScript文字的文本之前,将其编码为JSON。

var t = <?php echo json_encode($_SESSION['tagname']) ?>; 

,当然还有,确保$_SESSION['tagname']实际上包含的东西。

0

因为t变量包含一个字符串,它应包含在单或双引号(在这种情况下,双引号,因为你有这样的字符串内的单引号,因此不搞乱)。

var t = "<?php echo $_SESSION['tagname'] ?>;"; 

而且,它取决于“tagname”是否是一个Javascript变量。