2014-01-15 17 views
0

我們有一個基本上是花式計數器的HTML/JS動畫。實際的計數器部分是一個div值,它是從一個PHP腳本中加載的值,該值是一個隨機數。它看起來像這樣:將外部託管的PHP文件中生成的文本加載到iPad上的HTML/JS動畫中

<?php 

$val = file_get_contents("num.txt"); 
$val += rand(1, 5); 
file_put_contents("num.txt", $val); 

print $val; 

我們託管在外部域這個PHP文件,因爲這個動畫將被打包爲一個iPad出版物的一部分。這個想法是,當我們的動畫被加載時,它會調用我們的PHP文件並從中獲取它的值。

我想知道加載這些數據最直接的方法是什麼。

的,我們正在改變計數器的文本部分的DIV是#Stage_Text。我已經在動畫的html中嘗試了以下方法,但不幸沒有工作:

$(document).ready(function() { 
     $.ajax({ 
      url : "http://ourdomain.com/stat.php", 
      dataType: "text", 
      success : function (result) { 
       $("#Stage_Text").html(result); 
      } 
     }); 
    }); 

任何援助將不勝感激。

+0

你的代碼似乎罰款,這可能是因爲您要求從外部域的PHP文件,雖然我不知道 – Bill

+0

也,你檢查的PHP腳本工作? (我不太熟悉PHP)。你可以通過簡單地去瀏覽器的url來做到這一點http://ourdomain.com/stat.php – Bill

+0

感謝您的答覆 - 我已經檢查過PHP文件絕對有效。 – user3196337

回答

0

我剛剛測試過你的代碼,它似乎工作正常。

您是否完成ajax請求?你可以在Firebug或你的開發者工具中查看。

這是我唯一沒有其他信息的想法。

------ ----- UDPATE

對不起,我沒看到你的Ajax請求是不同的域。是的,這是不行的,因爲same-origin policy - 實質上,你只能對服務於javascript文件的域進行ajax調用。思想

地塊的避過它here

最簡單的方法可能是使用一個server-side proxy

+0

我不確定。我在Firebug中沒有收到任何錯誤,但是我剛剛創建了一個帶有空白div的測試html文件,雖然它看起來像到達域(200 OK,雖然它突出顯示爲紅色),但它實際上並沒有返回值回到它。我會嘗試在另一個域上託管它,看看它是否對該主機有某種限制。但是,如果您在瀏覽器中訪問該網址,則PHP會返回一個值,因此該腳本確實有效。 – user3196337

0

感謝您的回覆!最後,我們通過將整個動畫託管在服務器上並在應用程序中調用它來解決此問題。這樣,我發佈的代碼原本運行得非常好,並解決了我們遇到的其他一些挑戰 - 例如,如果查看應用程序的用戶沒有互聯網連接,會發生什麼?按照我最初的意圖去做,意味着價值只會是空白的(你可以有一個佔位符,但它仍然不是理想的)。通過我們的解決方法,動畫不會被加載,我們在下面還有另一個更靜態的元素。

我想說的是,在這種特殊情況下,這是實現我們想要的絕對最直接和最簡單的方式。

相關問題