0

我有一个表格,其中所有单元格都有一个文本框来编辑单元格数据。现在我想使用 ajax 将数据保存到每个 keyup 事件的表中。我将每个文本框命名为 2d 数组,其中包含 2 个 id,每个键 1 个 id,我希望将其保存在表中。

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

现在那些 1 和 2 键是我想将每个键保存在表中的单独列中的 id。

有没有一种简单的方法来获取这些键值,或者我应该使用一些字符串操作来获取这些值?

javascript 或 php 中的任何建议都会有所帮助。

4

3 回答 3

0

It would probably be easier to name them

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

Then, in PHP, you access them with

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

In JavaScript, you do something like

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

I am assuming that these are in some kind of grid, so m and n are known. If not, Ek0nomik's solution would suit you better, although the regex should be \.*\[([0-9]+)\]\[([0-9]+)\] (\[ and \] should go outside of (...) and quantifier + should be added to allow indexes larger than 9) or, a bit more precise, ^txtfield\[([0-9]+)\]\[([0-9]+)\]$.

于 2013-05-16T00:46:11.740 回答
0

我更喜欢使用 jQuery,将数据与名称值分开并避免使用正则表达式。

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

在 jQuery 中:

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

检索所需的值。

于 2013-05-16T00:51:22.787 回答
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.
于 2013-05-16T00:35:42.163 回答