2012-11-16 106 views
4

我使用的是使用JSON字符串來建議其數據的jQuery pluginJSON字符串太大

如果JSON字符串少於X個元素,一切正常。在此限制以上沒有任何反應,autosuggest失敗。我想這是因爲有一種解析限制,但我怎麼能繞過這個請?我有+5000元素的數組...

這裏是我的JSON代碼:

var SearchTxt = '[{"t":"word one"},{"t":"word two"}, ...]'; 

謝謝!

回答

1

好的,所以我終於找到了這個問題的根源。由於簡單的引號,導致解析錯誤...不要問我爲什麼它只是在一定數量的元素的情況下才會發生,而所有引號都已經轉義。

嘛,所以我改變了這一點:

var SearchTxt = '[{"t":"word one"},{"t":"word two"}, ...]'; 

var SearchTxt = [{"t":"word one"},{"t":"word two"}, ...]; 

和它的工作。

0

JSON沒有「解析限制」,任何限制都由服務器解析JSON請求來設置。

+0

好的,但我怎樣才能檢查這個參數,以及如何解決這個問題? 我的數組與2000-2500元素一起工作,但我需要在php.ini中添加雙重 – SuN

+0

更改max_post_size以更改最大發布大小 – PhilTrep

3

$.getJSON()正在使用GET方法,即limited by a varying length for each browser。所以在你的情況下,返回的結果顯然超過了這個限制。你想要做的是改變

$.getJSON(settings.url,{search:text},function(data){if(data){buildResults(data,text);} 
else{$(results).html('').hide();}}); 
在插件的源代碼

$.post(settings.url,{search:text},function(data){if(data){buildResults(data,text);} 
else{$(results).html('').hide();}},'json'); 

這將使它做一個POST請求代替。此外,請務必在您的服務器端腳本中將引用更改爲全局$_GET陣列,並將其更改爲$_POST(如果有)。

+0

謝謝哈哈,但我對json真的很陌生,我不知道在哪裏解決這個[插件代碼](http://tomcoote.co.uk/wp-content/CodeBank/Demos/JSONSuggestBox/jquery.jsonSuggest-dev.js)。我嘗試了幾件事,但沒有任何工作。 – SuN

+0

您可以使用CTRL + F在打開的文檔中查找偏移,按Ctrl + V粘貼您已經複製的東西。 – inhan