2013-01-21 182 views
1

我開始一個網頁編程提交表單與許多領域,因爲到目前爲止,我只用了網頁設計。JQuery的:通過AJAX調用

我的問題是,從來就做到這一點顯示出與各部門的12個問題形式的調查。部門的數量取決於一個名爲「sections」的前一個選擇器。

因此,形式可以顯示12個問題,如果字段「部分」具有1個系,或120,如果「部分」具有10個部門。

序列化和編碼數據爲Base64之前提交:

// Setup call 
    $.ajax({ 
     type: 'GET', 
     url: 'survey_actions.php&action=save', 
     data: { parameters: Base64.encode($("#mySurvey").serialize()) }, 
     dataType: 'text', 
     beforeSend:function(){ 
     // Load waiting panel 
     loader("on"); 
     }, 
     success:function(response){ 
[...] 

我敢肯定這是不是乾淨的方法和,我遇到了以下問題:當字段填寫的數量少(例如12),所有工作都正常,但是當號碼更高時(例如72),服務器不會收到所有數據。

字段命名如下: 「sectorID_questionID」。所以在帖子上,參數字符串是:

...&1_0=X&1_1=X&1_2=X&1_3=X... 

(X是用戶給這個問題的值)。

所以,問題:什麼是解決它,並沒有把它修剪巨大的數據發送到使用AJAX的服務器最appropiated方法是什麼?

真誠,感謝您的幫助:)

+0

嘗試增加[的post_max_size(http://php.net /manual/en/ini.core.php#ini.post-max-size) –

回答

0

阿賈克斯只能採取數據的查詢字符串。所以,如果大數據沒有正確發送,它可能是您的服務器/ application.platform的限制。你可能會考慮增加max_input_vars。也請確保您使用POST,並沒有得到

2

更改AJAX類型爲POST,而不是GET$_POST獲取數據。您的數據可能會超出最大查詢字符串長度。

+0

感謝您的快速回答:) 什麼是maxium查詢字符串長度?可以在服務器選項中配置嗎? 再次感謝。 – Gesocape

0
$.ajax({ 
     type: "POST", 
     url: "some.php", 
     data: { name: "John", location: "Boston" } 
    }).done(function(msg) { 
     alert("Data Saved: " + msg); 
    }); 

只需使用上述語法的,我不認爲你需要序列數據

+0

無論包含多少元素,他都希望提交整個表單。這就是他爲什麼要做序列化的原因。 – bencoder