2013-04-13 39 views
-2

好的,所以我一直在試圖在fancybox窗口中回顯一些JavaScript,以便在用戶登錄或註銷時彈出。這是我到目前爲止,但它一直拋出服務器錯誤。使用括號在PHP中嵌入Javascript

<link rel="stylesheet" type="text/css" href="scripts/fancybox/jquery.fancybox.css" /> 
<script type="text/javascript" src="scripts/fancybox/jquery.fancybox.js"></script> 
<?php 
$msg = $_GET['msg']; 
if(isset($msg['0'])); { 
echo ' 
<script type="text/javascript"> 
$.fancybox.open([ 
{ 
    href : \'m.php?=0\', 
    title : \'Successfully Logged In!\' 
}  
], { 
padding : 0 
}); 
</script>'; 
} 
else if (isset($msg['1'])); { 
echo ' 
<script type="text/javascript"> 
$.fancybox.open([ 
{ 
    href : \'m.php?=1\', 
    title : \'Successfully Logged Out!\' 
}  
], { 
padding : 0 
}); 
</script>'; 
} 
?> 

我在做什麼錯?

+0

你應該提供錯誤服務器拋出。 – Luigi

回答

1

問題不在括號中。 PHP不會回顯出多行代碼。爲了做你想做的事情,你需要設置一個變量,然後回顯出來:

$myVar = ""; 
$myVar .= "<script src='text/javascript'>"; 
$myVar .= "blah blah blah..."; 

echo $myVar; 
+0

你也可以通過多行建立它,我經常這樣做,比如'$ myVar =「」;'但每個'.'都有換行符。只是爲了保存一些字符。 – Dave

+1

Heredocs始終是一種選擇。 – icktoofay

+0

@icktoofay確實如此。 – cereallarceny

1

不要回顯腳本,做這樣的事情。

<?php 
$msg = $_GET['msg']; 
if(isset($msg['0'])); { ?> 

<script> 
//JS 
</script> 

<?php } ?> 
+1

這沒有奏效。 – user2278343

+0

這是你如何根據條件嵌入JS與PHP – Vector

0
if(isset($msg['0'])); { 

分號呢?我想不是。此外消息是一個數組?也許你想這樣做:

$msg = isset($_GET['msg']) ? $_GET['msg'] : false; 
if($msg === '0') { 
+0

它不是在一個數組中,當用戶從login.php登錄時,我希望它使用php頭並將它們重定向到index.php?msg = 0。當他們被重定向到index.php?msg = 0時,我想要fancybox彈出說成功登錄。和登錄logout.php相同。 – user2278343