我需要使用JavaScript(+ Mootools)以相同類型的嵌套對象格式從PHP表單中提取數據,PHP會在表單發佈時看到它。如何使用JavaScript提取HTML表單數據?
我只是在使用谷歌搜索還是真的沒有本地或一個衆所周知的方式來實現呢?我看到很多其他人在不同的論壇上提出過相同的問題,但到目前爲止,所有人都接受了像jQuery serializeArray等解決方案。
我用jsFiddle http://jsfiddle.net/7quxe/試用了serializeArray,結果令人失望。
我以前爲自己編寫過一個腳本,它工作得很好,除了當表單有重疊的混合鍵類型字段時有一些問題(<input name="foo[bar]" value="1"> and <input name="foo[]" value="2"
。我已經開始編寫更好的版本,但是我發現我自己一遍又一遍地重新開始,我心想:有很多很棒的js庫,旨在解決許多基本的日常問題。它真的可能是想從一個格式正確的格式化對象中提取數據,這不是?常見
這裏是我試圖的例子:
<form method="post" action="/">
<input name="test" value="test">
<input name="nested[a]" value="a">
<input name="nested[b]" value="b">
<input name="nested[c]" value="c">
<input name="arraytest[]" value="foo">
<input name="arraytest[]" value="foo">
<input name="arraytest[]" value="foo">
</form>
下面是PHP會怎麼看:
$_POST = array(
'test' => 'test',
'nested' => array(
'a' => 'a',
'b' => 'b',
'c' => 'c',
),
'arraytest' => array(
0 => 'foo1',
1 => 'foo2',
2 => 'foo3'
)
)
,這是我想在JS得到什麼:
{
test : 'test',
nested : {
a : 'a',
b : 'b',
c : 'c'
},
arraytest : { // This could also be an array ['foo1','foo2','foo3']
0 : 'foo1',
1 : 'foo2',
2 : 'foo3'
}
}
看看這個http://stackoverflow.com/questions/2192091/accessing-an-array-of-html-input-text-boxes-using-jquery-or-plain-javascript – Kotzilla
@Kotzilla我做知道如何分別訪問這些值。這裏的問題是讓他們進入一個乾淨和正確的嵌套對象。查看編輯。 – jpeltoniemi