因此,我有一個腳本使用AJAX將json字符串傳遞給php文件。我使用JSON.stringify()
javascript數組添加到json字符串。麻煩的是數組中的項目有時包含引號(即在html標籤的屬性的情況下)。這裏是產生這樣的例子JSON字符串:將包含GET變量中的標記的JSON傳遞給php
[["CUGHDAA ID Equity","Cullen Global High Dividend USD","0.5","<a href="\""#"\"">x</a>"],["XESX GY Equity","DB X Euro Stoxx 50","0.5","<a href="\""#"\"">x</a>"],["ABEFROA LX Equity","Aberdeen Global Emerging Markets","0.25","<a href="\""#"\"">x</a>"]]
JSON.stringify()
逃逸和HTML編碼的報價,但是當我通過一個GET變量傳遞的字符串到PHP文件我的PHP文件似乎不能夠接受它:引用似乎只是把所有東西搞砸了。我能做些什麼來確保json字符串到達php而不會搞亂GET表單?
編輯:如果我要使用POST,我將如何去通過jQuery Ajax傳遞它?
這是我到目前爲止有:
var form = $(this),
formData = '&id=' + id + '&portData=' + JSON.stringify(tbl),
formUrl = form.attr('action'),
formMethod = form.attr('method'),
responseMsg = $('#update-response');
//add status data to form
form.data('formstatus','submitting');
//Do the ajax
$.ajax({
url: formUrl,
type: formMethod,
data: formData, etc...
儘管使用formData
變量名我傳遞的數據是不是一個形式,而是一組聚集在提交的JavaScript變量。我如何通過POST而不是GET來通過id
和JSON.stringify(tbl)
?
有了這麼多的數據,你真的應該使用POST而不是GET。 – Blazemonger
那麼,你顯示的是不正確地逃脫JSON。這是從哪裏來的?你到底在用PHP接收什麼? – deceze
我顯示的是從'JSON.stringify'返回的內容。這將得到發送變量作爲一個get變量,但顯然搞亂了事情,因爲引號在URL形式時得到未轉義,因爲html編碼的引號被視爲帶有斜槓的引號 – harryg