2016-02-13 48 views
1

我正在用php每2秒填充一個js數組,但它僅在第一次使用,因爲php代碼只在打開窗口時執行,但我想執行它每次我啓動js功能。動態創建一個js數組,每x秒

這裏是我的代碼:

function update(){ 
    var datas = <?php echo Gallery::getPhotos(); ?>; 
    ... 
} 

setInterval("update()", 2000); 

的問題是,因爲<?php echo Gallery::getPhotos(); ?>;只執行第一次,var datas永遠不會改變。我怎樣才能每2秒執行一次php? 我在文件上看到了一個解決方案,但我不知道該怎麼做,我不知道這是否只是一條指令的解決方案。

Gallery是一個存儲圖片的單例類,函數getPhotos()返回一個包含照片名稱的數組。

+0

[異步JavaScript + XML(AJAX)](HTTPS://developer.mozilla。 org/en-US/docs/AJAX) – Andreas

+0

雖然我知道AJAX可以用來做這件事,但是我找不到問這個問題,而不是AJAX。如果其他人可以找到重複,請舉報。 –

回答

1

由於<?php ... ?>僅在頁面加載時運行,您可能必須使用AJAX。下面是一個基本的例子:

編輯:下面有一個工作實施例中:

setInterval(function(){ 
    $.get("myphp.php",function(data){ 
     update(data); 
    }); 
},5000); 

function update(data){ 
    //... 
} 

參考:http://api.jquery.com/jQuery.get/

+0

謝謝,我會試試這個!所以我們必須創建一個文件,否則我們不能請求 –

+0

它是否成功? – TheMintyMate

+0

差不多,我可以得到數據,但我不能使用它們之外的功能 –