2013-02-16 77 views
0

PHP變量將有一個問題, 我有一個Javascript代碼,它包含PHP變量我正面臨的問題;我似乎編碼的Javascript裏面

<?php // Database information 
$name="whatever"; 

$mp3 = "Link/to/track/"; 
echo " 
var myPlaylist = [{ 
    mp3:'mix/4.mp3', 
    title:'$name', 
}]]; </script>"; 

在試圖編碼這個,我能夠編碼部分的Javascript ,但它顯示我的變量名(在這種情況下$名),而不是(任何)

+0

這當然是一個PHP文件裏,作爲.js文件不被PHP解析爲默認值(你可以將它解析它們)。 – adeneo 2013-02-16 01:15:26

+0

試試這個:'title:'「。$ name。」'' – 2013-02-16 01:15:45

+2

你的PHP代碼很好,但我不禁注意到Javascript並不是。 – Heap 2013-02-16 01:26:33

回答

2

無論您何時在PHP和JS之間傳輸信息,請使用json_encode。 1)你知道你正在構建一個合適的JavaScript結構(在你的代碼中,你不是......你關閉了這個數組兩次),2)你避免了逃避問題。嘗試:

<?php 
$name = 'whatever'; 
$mp3 = '/link/to/track'; 

$json = array(array('mp3' => $mp3, 'title' => $name)); 
print "var myPlaylist = " . json_encode($json); 
+0

+ 1爲思考的框,好建議。 – Heap 2013-02-16 01:42:37

+0

這工作完美!謝謝 – 2013-02-16 01:44:19

0

這應該工作的價值,但這種嘗試無論如何

title:'".$name."', 

title:'{$name}', 

由於您使用雙引號,它應呈現PHP變量,單引號不會,但你沒有使用這些。此外請確保逃避名稱,因爲如果它有單引號?它會打破你的JavaScript(除非它嚴格控制,你知道它不會有單引號)。

+0

他們都沒有工作, 它返回:$ name而不是值 – 2013-02-16 01:17:04

+0

你確定php正在運行?用這個代碼開始一個新頁面,看看會發生什麼。 <?php echo time(); ?>當頁面加載時,你看到一個很大的數字或代碼嗎? – Danny 2013-02-16 01:20:54

+0

Php的運行良好,因爲相同的頁面,容納我所有的php連接器信息 – 2013-02-16 01:21:40