2011-09-30 37 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變量。