2010-03-06 152 views
3

我有100個輸入,名稱爲table[]。我如何通過jQuery獲得它們的價值?用Jquery獲取輸入值

我想在PHP中做類似$_POST['table']的事情。

我嘗試下面的代碼,但我想要的值作爲數組...

$("input[name='table[]']").each(function(){document.write($(this).val());}); 

回答

5
var arrInputValues = new Array(); 
$("input[name='table\\[\\]']").each(function(){ 
    arrInputValues.push($(this).val()); 
    // you can also use this 
    //arrInputValues.push(this.value); 
}); 

現在你arrInputValues包含了所有價值。

也可以使用

$("input[name='table[]']").each(function(){ 

你可以看到一個working demo

可以使用join()方法加入的值在數組中。

arrInputValues.join(','); 

將數組元素作爲由,分隔的字符串加入。

+0

document.write(arrInputValues)輸出test1 ,,,,,,,,,,,,,,,,,,,,,,,,,, test2等等。 這是正常的嗎? – 2010-03-06 19:18:27

+0

是的,這是正常的。 – rahul 2010-03-06 19:31:35

+0

謝謝! 如何解除它們? 如果我通過PHP中的foreach處理字符串並將其插入到數據庫中,它會起作用嗎? 你看到我的答案在下面嗎? – 2010-03-06 19:44:57

2

的[和]字符是特殊字符,你需要逃脫他們

$("input[name='table\\[\\]']").each(function() 
{ document.write($(this).val());   }); 
+0

好的,但如何得到它作爲數組? 現在它輸出我說: test1test2test3test4 ........ 如何獲得就像是 陣列( [0] => TEST1 [1] => TEST2 [2] => TEST3 [3 ] => test4 ) – 2010-03-06 18:48:58

2

你需要跳過[]字符,試試這個:

$("input[name='table\\[\\]']").each(function() 
........... 
+0

正如我發佈的 以上好,但如何得到它作爲數組?現在它輸出我:test1test2test3test4 ........如何獲得像數組([0] => test1 [1] => test2 [2] => test3 [3] => test4) – 2010-03-06 18:49:23

+0

@Angelov :它已經是$ _POST ['table']中的數組了;你可以看到print_r($ _ POST ['table'])的內容。 – Sarfraz 2010-03-06 19:00:39

+0

我沒有解釋正確。 這一切的IDE是我想要將輸入值轉移到另一個文件,使用AJAX,我將在BD中提交該值,但我必須使用foreach,我認爲這需要數組。 foreach($ _ POST ['table'] AS $ data){ //插入到數據庫 } 我想在不刷新頁面的情況下插入它,同時點擊提交,這就是爲什麼我使用AJAX。 但是發生提交到數據庫我必須發送數據到另一個文件,使用AJAX.Thats爲什麼我想在JS中的數組。然後我將它序列化爲一個字符串,做我想要的 – 2010-03-06 19:12:40

3

以下代碼給出了每個輸入的

var arr=new Array(); 
$("input[name='table[]']").each(function() 
{ 
    var val=$(this).attr('value'); 
    document.write(val); 
    arr.Push(val); 
}); 
+0

你可以告訴我如何獲取所有元素的值作爲數組? 謝謝! – 2010-03-06 18:50:17

+0

請參閱更新的答案。 謝謝! – 2010-03-07 08:45:25