2011-09-30 30 views
0

我有一個textarea,我正在使用JavaScript來檢索值並通過PHP腳本發送到MySQL數據庫(不要問爲什麼 - 長篇故事和不可避免的解決方案! )。從JavaScript到PHP/MySQL傳遞&符號

PHP腳本會對輸入進行清理,但由於某些原因,&符號永遠無法到達所述腳本 - 它也會在&符後清除任何信息。

var Reason = $('textarea#txt_reason').val(); 
Reason = Reason.replace(/&/g,'&'); 

如果我使用上面的內容,則在&符號後的所有文本都將被選中。

var Reason = $('textarea#txt_reason').val(); 
Reason = Reason.replace(/&/g,'%26'); 

如果我使用上述內容,%26確實會被髮送到PHP和MySQL數據庫。

如果我var_dump在PHP腳本中的$ _GET要求,與符號永遠那麼遠,所以它不是什麼與mysql_real_escape_string /ヶ輛等

有沒有一種方法我可以直接發送「& 「到我的PHP腳本,而不必編碼/解碼?

乾杯, 鄧肯

+0

你可以發佈你用來發送'原因'到PHP腳本的代碼嗎? – awm

+0

您可以使用內建的Javascript函數'encode(str)'。我對PHP不太熟悉,但通常***會從http查詢字符串中檢索任何值,並自動解碼編碼的元素。 –

回答

1

您發送使用Javascript的任何數據,也應encodeURIComponent()進行編碼。這將照顧&,=和其他麻煩製造者。數據自動解碼到$ _GET數組中。

(大多數Javascript框架,如jQuery爲你做這個...)

+0

我認爲其中存在的問題是:我使用的框架/ API不能正確處理&符號。謝謝! – dunc