PHP从提交表单循环HTML表格元素

时间:2012-04-18 19:22:52

标签: php

我有一个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”,我不知道在设计时存在多少行......(i永远不会超过9行)

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

3 个答案:

答案 0 :(得分:4)

我很确定你必须在name =“”values

中使用数组
<td><input type="text" name="name[]"></td>

答案 1 :(得分:1)

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

像这样的Simething:

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

  $_POST['name_'.$i]
  ...
}

答案 2 :(得分:0)

我使用了name数组和simple 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>";?>