2011-11-10 80 views
0

我的問題:我有ajax代碼將表單元素和簡單的字符串提交給mysql數據庫,但我無法將dataURL保存到mysql,因爲我通過它的方式。將html5 canvas的DataURL保存爲mySQL(PHP,Javascript,mysql)

我使用

xmlhttp.open("GET","gethint.php?q="+str,true); 
xmlhttp.send(); 

我可以提醒(STR)作爲dataURL並顯示正常,但我不能將它發送到由於dataURL內的字符PHP頁面。我知道我的代碼有效,因爲我可以設置str =「cheese」,它將我的數據庫設置爲cheese。

我該如何解決這個問題?我已經看過「郵報」,但我不知道這是否會幫助我。

感謝

回答

0

GET是不是要傳遞的數據可能會很長的最佳場所。瀏覽器對查詢字符串的長度有限制,每個字符都不相同。

這就是說,由於dataurl包含'壞'字符,所以您需要通過encodeURIComponent()以使其在URL中有效。

但是,請考慮切換到使用POST - 它沒有客戶端長度限制,因爲URL。

+0

所以使用POST你仍然通過URL查詢字符串像「gethint.php?q =」 我很新的ajax。還有更好的方法來獲取dataURL到數據庫嗎?我確實需要在將來進行這項工作,並且恐怕encodeURLComponent()會將dataURL作爲符號,如果我試圖拉動它的話 – Dom

+0

不可以。*您可以*在帖子的url中使用查詢參數,但是發佈數據通常會進入請求正文。阿賈克斯沒有什麼特別的。它只需要在瀏覽器的前端(例如,在提交表單時)「看到」的常規http請求,並將其發送到後臺。一旦你消除了炒作/流行語,它仍然只是普通的HTTP請求。 –

+0

我不知道該怎麼做,然後爲這個項目..我的最終目標是採取什麼畫在畫布上,並將其保存到數據庫,以便用戶可以訪問,vew,並在以後更改。它是使用html5的平板電腦的幻燈片註釋應用程序。你能想出解決這個問題的好方法嗎?同樣重要的是,由於幻燈片的原因,幻燈片保存的圖像不斷變化,但我希望學生的註釋保持不變。 – Dom