2012-03-02 52 views
0

我正在爲放置在一起的音樂播放器創建動態播放列表。播放列表將坐在外部.txt文檔中。我將用一個例子。我有一個變量:在預加載但空的txt文檔中寫入javascript var =「一些文本」

playlist="track_1" 

在頁面上是在頭一個按鈕

<button onclick="add_track()"> 

腳本

function add_track() 
    { 
    playlist=playlist+" track_2" 
    ...What I need here is some way to put the playlist variable into a txt doc 
    } 

按鈕將PHP所產生的,包括名稱要添加到播放列表變量字符串的軌道。 Document.write對於這個函數來說是完美的,因爲它用變量的內容替換了所有的東西;不幸的是,它取代了按鈕不在指定外部文件中的文檔。

+0

你在瀏覽器上下文中的文本文件是什麼意思?你想在用戶計算機上創建一個文本文件嗎?您無法打開空白文檔,但可以讓用戶下載準備好的文字。 – 2012-03-02 12:43:11

+0

是否要將文本文件用作服務器上軌道的永久存儲器?然後你必須編寫一個管理這個文件的服務器端程序,例如一個php腳本。然後,您可以使用ajax調用此腳本並將track-name傳遞給服務器。 – Simon 2012-03-02 12:47:16

+0

你真的應該提供更多關於你的場景以及你想要做什麼的信息。您提供的信息越多,我們就可以提供更好的答案。 – 2012-03-02 13:05:22

回答

2

那麼你可以創建在一個文件中JSON對象並將其保存爲file1.json

{ "playlist" : "track1" } 

,當然使用

$.getJSON("file1.json", function(data){ 
    var playlist=data.playlist+" track_2" 
}); 

當你讀它這隻有,寫到.json文件,你應該使用PHP或任何你使用的服務器端

2

你不能用javascript寫文件。你需要一個服務器端解決方案。

例如:你可以有一個AJAX調用PHP腳本,在一個txt文件

0

您需要使用PHP寫/追加到文件寫入東西。您可以使用jQuery.ajax()函數來調用一個PHP腳本編寫/追加到文件:

jQuery('#buttonId').live('click',function(event) { 
    $.ajax({ 
     url: 'write-file.php', 
     type: 'POST', 
     dataType: 'json', 
     data: { 
      playlist: "track_1" 
     }, 
     success: function(data) { 
      for(var id in data) { 
       alert(data[id]); 
      } 
     } 
    }); 
    return false; 
}); 

寫file.php(像這樣)

$myFile = "testFile.txt"; 
$fh = fopen($myFile, 'a'); 
fwrite($fh, $_POST['playlist']); 
fclose($fh); 

// echo status here in json format 
0

取決於你真正想做的事,你可以打開一個新的瀏覽器窗口中出現了data URI,包含文本:

window.open('data:,' + encodeURIComponent(playlist)); 

用戶只需要保存文檔即可。雖然播放列表的大小受限於允許的URI長度。

下面是一個例子:http://jsfiddle.net/UjzsG/

0

感謝所有幫助下,我第一次問了一個愚蠢的問題,得到了一個很好的答案。結果我有點厚,現在不需要PHP,但是稍後我會保存播放列表。實現製作一個動態播放列表我可以將它存在的數組作爲一個字符串保存在一個變量中,將字符串添加到字符串中,然後在讀取列表的每個函數中調用eval(播放列表)。

var playlist = 'var tracks = new Array("track_00","track_01"'; 
var end_bit = ');'; 
var playlist_full = playlist+end_bit; 

然後添加的東西

function AddTrack() 
{ 
playlist=playlist+'"track_02"'; 
} 

,並讀取它

function ReadTrack() 
{ 
playlist_full = playlist+end_bit; 
eval(playlist_full) 
document.getElementById("current_track").innerHTML=tracks[2]; 
} 

對所有的意見再次歡呼。