2013-05-16 63 views
0

我有一個表格,其中所有的單元格都有一個文本框來編輯單元格數據。現在我想使用ajax將數據保存到每個關鍵事件的表中。我有每個文本框命名爲2d數組,其中包含2個ID,每個鍵1個ID,我想保存在一個表中。在JavaScript或PHP中獲取2d數組鍵值?

<input type="text" name="txtfield[1][2]" /> 

現在,那些1和2鍵是我想要將每個保存在表中的單獨列中的ID。

有沒有一種簡單的方法來獲得這些關鍵值,或者我應該使用一些字符串操作來獲取這些值?

JavaScript或PHP中的任何建議都有幫助。

回答

0

它可能會更容易給它們命名

<input type="text" name="txtfield-1-2" /> 

然後,在PHP中,您可以使用

for (i = 1; i <= m; i++) 
    for (j = 1; j <= n; j++) 
     whatever($_POST["txtfield-$i-$j"]); /* or $_GET[...] */ 

在JavaScript中,你這樣做

for (i = 1; i <= m; i++) 
    for (j = 1; j <= n; j++) 
     whatever(document.getElementById("txtfield-" + i + "-" + $j).value); 

我假定這些都是在某種網格,所以mn是已知的。如果不是,Ek0nomik的解決方案會更適合你,雖然正則表達式應該是\.*\[([0-9]+)\]\[([0-9]+)\]\[\]應該超出(...),應該添加量化器+以允許大於9的索引),或者更精確一些,^txtfield\[([0-9]+)\]\[([0-9]+)\]$

+0

感謝您的意見,我很感激。 – Ralph

0

您可以使用Javascript或PHP獲取這些值。只需使用正則表達式:

一個例子(如果需要的話,這可能作出更具體的):

/.*(\[[0-9]\])(\[[0-9]\])/ 

PHP實例:

preg_match_all('/.*(\[[0-9]\])(\[[0-9]\])/', 'txtfield[1][2]', $matches, PREG_PATTERN_ORDER); 
//Do something with $matches. 
0

我寧願使用jQuery,從名稱值中分離數據並避免使用正則表達式。

<input type="text" data-apples="some_value" data-oranges="some_value" id="yourID" /> 

在jQuery中:

var apples = $('#yourID').data('apples'); 

檢索所需的值。