2013-05-14 201 views
1

加入jQuery的表單元素我試圖隱藏輸入字段動態添加用方括號中的ID /名稱的形式:用方括號

<input type="hidden" name="myField[]" id="myField[]" value="someValue" /> 

的添加工作正常(至少螢火顯示正確添加字段)。但是,當我嘗試訪問接收PHP腳本中的後數組時,字段名最終爲myField%5B%5D,並且數組丟失。

當這些字段手動添加到HTML代碼時,我最終在postvars中有一個很好的數組。

我該如何解決這個問題?

[編輯]

這是我如何添加字段:

$('#theForm').append(
       $('<input/>') 
        .attr('type', 'hidden') 
        .attr('name', 'myField[]') 
        .attr('id', 'myField[]') 
        .val(value) 
      ); 

我也使用轉義字符,如\[\]嘗試 - 也\\[\\] - 無濟於事

+2

向我們展示你怎麼加呢? – adeneo 2013-05-14 09:43:24

+0

似乎對我來說工作得很好,但由於某種原因,POST數據在您收到它時未進行url解碼? – adeneo 2013-05-14 09:48:30

+0

當我在接收腳本中執行print_r($ _ POST)時,結果是Array([myField%5B%5D] => someValue) 預期會是Array([myField] [] => someValue) - 正如我所說 - 加入工作正常 - 但序列化(serialize())似乎失敗 – Swissdude 2013-05-14 09:50:24

回答

0

您可能要閱讀this並試試這個:

$('#theForm').serialize().replace('%5B%5D', '[]') 

或該

$.param(obj, true); 
$.post(url,serializedObj,function(){}); 

$.paramtrue指示應該使用序列化的對象的傳統方法。當遇到相同的參數名稱時,傳統方法不使用方括號。

0

試試這個

$('#theForm').append('<input type="hidden" name="myField[]" id="myField[]" value="someValue" />');