1

我有一个 jQuery 函数来动态添加包含输入字段的行,这存在于表单上,该函数将文本框(不同的名称)添加到表中的每个单元格

生成的 HTML 的一个示例是:

<table width="400" border="0" cellspacing="0" cellpadding="2px" margin="0" >
    <tbody>
    <tr>
        <td><input type="text" name="name_1"></td>
        <td><input type="text" name="surname_1"></td>
        <td><input type="text" name="age_1"></td>
    </tr>
    <tr>
        <td><input type="text" name="name_2"></td>
        <td><input type="text" name="surname_2"></td>
        <td><input type="text" name="age_2"></td>
    </tr>
    <tr>
        <td><input type="text" name="name_3"></td>
        <td><input type="text" name="surname_3"></td>
        <td><input type="text" name="age_3"></td>
    </tr>
    </tbody>

我正在使用以下代码读取“$_POST['varName'] 数据:

<?php
    $cnt = 1 ;
    $fName = ( $name ."_" .$cnt) ;
    do {
        echo("$_POST[$fName]  <br>");
        $cnt = $cnt +1 ; 
        $fName = ( $fldName ."_" .$cnt) ;

        } while (isset($_POST[$fName]));
    ?>

但是,我想简单地遍历表中的每一行并在循环中顺序读取数据(使用 PHP),我的想法是将表对象传递给 php 函数,这可能吗?

基本上我正在寻找一种读取表数据的解决方案,其中每一行包含输入框“name_X”、“surname_x”和“age_x”,我不知道在设计时存在多少行......(我永远不会有超过 9 行)

希望这很清楚!... 有什么建议么?

4

3 回答 3

4

我很确定您必须在 name="" 值中使用数组

<td><input type="text" name="name[]"></td>
于 2012-04-18T19:25:15.143 回答
1

您可以使用隐藏字段并使用 javascript 将行数设置为值。在 php 脚本中,您可以使用一个简单的 for 循环。

像这样的东西:

$rowCount = $_POST['hiddenName'];
for($i=1; i<=$rowCount; $i++)
{

  $_POST['name_'.$i]
  ...
}
于 2012-04-18T19:35:40.330 回答
0

我同时使用了名称数组和简单的 for 循环来找到合适的答案。谢谢大家!

HTML:我有一个 js 函数,可以动态地将以下内容添加到表中(表单上的按钮)

<tr>
        <td><input type="text" name="name[]" ></td>
        <td><input type="text" name="surname[]" ></td>
        <td><input type="text" name="age[]"> </td>
    </tr>

PHP:这就是我在表单中处理表格的方式

<?php  
$rowCount =  count($_POST['name']); 
    echo "<table>";
    for($i=1; $i<=$rowCount; $i++)
        {
        echo "<tr>";
        echo "<td>".$_POST['name'][$i -1]."</td>";
        echo "<td>".$_POST['surname'][$i -1]."</td>";
        echo "<td>".$_POST['age'][$i -1]."</td>";
        echo "</tr>";
        }
    echo "</table>";?>
于 2012-04-19T17:14:38.067 回答