2016-02-06 54 views
1

我使用jQuery來發布字符串到PHP文件這樣創建的文件:使用PHP與jQuery

$.ajax({ 
     type: "POST", 
     url:"save0.php", 
     data: {data:subtitle}, 
success: function() { 
     console.log("message sent!")} 
}); 

php文件,然後將其寫入一個.vtt(字幕)文件,該文件被加載回循環html5視頻的軌道元素。現在每個視頻循環它的時間有不同的字幕:

$("#subtitles").attr("src", "subtitle/sub1.vtt"); 

我使用下面的行刪除最後一個曲目SRC(否則視頻不循環):

$("#subtitles").removeAttr("src"); 

遺憾的是它不沒有用,看起來只能在刷新瀏覽器時使用字幕。當視頻嘗試循環播放時,它會卡住,可能是因爲它無法找到音軌的src元素(我一直在調試它)。 難道是新鮮寫入的文件只能在刷新後才能使用?還是有另一種方式來「加載」新寫入的文件?

+0

嘗試添加到文件「的最後?t = sfdgstye65v47「,其中所有這些符號都是隨機的。這可以讓瀏覽器認爲你想獲得新文件而不是緩存文件。像$(「#subtitles」)。attr(「src」,「subtitle/sub1.vtt?t = sfdgstye65v47」);通常爲這個字符串的人使用時間戳 –

+0

您是否嘗試過使用JS刪除並添加視頻(實際上導致重新加載視頻),當數據成功提交? – Err

+0

感謝您的幫助,我設法通過添加一些代碼來修復它,以便使用兩個字幕文件;當一個人被使用時,另一個人被改變,反之亦然。這有效,我會把代碼放在下面,以便其他人可以使用它。 – LuukS

回答

1

我的字幕文件之間交替固定它:

$("#subtitles").removeAttr("src"); 
if (subcounter == "ae"){  
      $.ajax({type: "POST",url:"save0.php",data: {data:subtitle},success: function() {console.log("message sent!")}}); 
      $("#subtitles").attr("src", "subtitle/sub1.vtt"); 
      console.log("true"); 
}; 
if (subcounter == "ea"){ 
      $.ajax({type: "POST",url:"save1.php",data: {data:subtitle},success: function() {console.log("message sent!")}}); 
      $("#subtitles").attr("src", "subtitle/sub0.vtt"); 
      console.log("false"); 
}; 

然後在循環結束它反轉子計數器字符串:

function reverse(s){ 
    return s.split("").reverse().join(""); 
    }; 

subcounter = reverse(subcounter);