2012-05-16 82 views
2

我有一個項目,需要將數據庫中的文本寫入HTML5 canvas/Javascript應用程序。將內容加載到應用程序的最佳方式

要選擇這個內容,我已經指定了一個屬性「reference」,我可以向數據庫提問內容id,例如:index.php?reference = exercise1。

我已經使用了AJAX,因爲我需要將文本內容轉換爲一個Javascript變量才能在畫布上寫入數據。 我的解決方案正在工作,但我需要從Javascript document.URL中獲取引用屬性值,而不是PHP $ _GET。

下面是代碼:

var url = decodeURIComponent(document.URL); 
var attr = "reference"; 
var attrPos = url.lastIndexOf(attr); 
var referencePos = attrPos + attr.length + 1; 
var reference = url.substr(referencePos,url.length); 

我在做什麼似乎不是乾淨的方式給我。

首先,?reference =應該與PHP $ _GET一起使用,不能通過Javascript被黑客入侵。

然後,如果我的應用程序位於名爲「reference」的文件夾中,則必須使用lastIndexOf()而不是search()方法才能獲得良好的值。

如果我在名爲「reference」的文件夾中使用URI(如localhost/reference/projectfolder/index.php)和數據庫中名爲「projectfolder」的引用將項目加載,即使我有沒有要求index.php?參考=項目文件夾

從你的經驗,什麼是在我的情況下最好的解決方案:能夠獲得PHP/MySQL數據使用Javascript。阿賈克斯似乎是最好的方式,但你可以看到它不乾淨,至少我的解決方案。

感謝您的幫助。

+0

爲什麼你需要使用URI?當頁面首次加載時,爲什麼不會將參數設置爲js變量,如'<?php echo「var currentReference =」。 json_encode(($ reference?$ reference:null))。 「;」 ?> – prodigitalson

+0

@prodigitalson我有一個Javascript類,外部js文件作爲我的主程序,我訪問並寫入畫布,所以我認爲這不是一個好的解決方案,打印變量 – baptx

回答

1

不過,如果我有我的項目名爲「引用」與URI 文件夾中的本地主機一樣/參考/ projectfolder/index.php文件和數據庫中的命名 「projectfolder」的提法,它會載入內容即使我 沒有要求的index.php?參考= projectfolder

,如果你想,當你剛剛請求的index.php文件是空的,檢查是否$ _GET [「引用」]設置然後返回一個空的身體。

從你的經驗來看,在我的情況下最好的解決方案是什麼:能夠通過 獲得使用Javascript的PHP/MySQL數據。阿賈克斯似乎是最好的方式,但你可以看到它不乾淨,至少我的解決方案。

檢查這個要點上如何返回JSON在你的身體https://gist.github.com/2627924

+0

我需要的是在我的Javascript中返回JSON外部文件,所以我可以加載內容在畫布 – baptx

+0

你得到的JSON與獲取請求使用JavaScript。爲什麼需要首先在文件中生成這個文件,是否有任何特定的原因?然後,你將不得不這樣做在PHP中,然後調用一些PHP腳本,更新您的永恆JavaScript文件之前檢索它 – Joelmob

+0

我實際上正在做你所描述的,獲取JSON數據與JavaScript請求(Ajax),但創建一個新的文件寫內容對我來說是沒有意義的,因爲我已經擁有一個Javascript類,每個函數都可以在畫布上進行讀寫操作:/ – baptx

相關問題