为什么我的 php 代码没有给我正确的文本字段名称

Why is my php code not giving me the right text field name

我正在尝试制作一个用于存储和检索比赛信息的 Web 应用程序。我正在使用 php 函数和索引循环动态创建文本输入。

代码如下:

<?php
    function table_head()
    {
        if ( func_num_args() > 0 )
        {
            $args = func_get_args();
            foreach($args as $value)
            {
                echo "<th>" . $value . "</th>";
            } 
        }
    }


    function display_fields()
    {
        $i = 0;
        $a = 19;
        $name="hi";
        while($i++ < $a)
        {
            array_push($numbers,$i);
            if($i==1)
            {  
                $name = "time";
            } else if($i > 1 && $i < 19){
                $name = "lap" + strval($i);
            } else {
                $name = "avgspd";
            } 
            echo "<td><input type='text' size='7' name='" . $name . "'/></td>";
        }   
    }   

echo "<form action='' method='POST'>";
    echo "<table><tr>";
    table_head("Time","lap1","lap2","lap3","lap4","lap5","lap6","lap7","lap8","lap9","lap10","lap11","lap12","lap13","lap14","lap15","lap16","lap17","Avg Spd");
    echo "</tr><tr>";
    display_fields();
    echo "</tr></table><br><input type='submit'/></form>";

?>

为什么文本字段的名称被称为“1”、“2”等而不是 "lap1"、"lap2"?
有什么办法可以解决这个问题吗?如果有怎么办?

这是浏览器(Safari 8.0.7 OS X 版本)显示的源代码:

<form action='' method='POST'>
    <table>
        <tr>
            <th>Time</th>
            <th>lap1</th>
            <th>lap2</th>
            <th>lap3</th>
            <th>lap4</th>
            <th>lap5</th>
            <th>lap6</th>
            <th>lap7</th>
            <th>lap8</th>
            <th>lap9</th>
            <th>lap10</th>
            <th>lap11</th>
            <th>lap12</th>
            <th>lap13</th>
            <th>lap14</th>
            <th>lap15</th>
            <th>lap16</th>
            <th>lap17</th>
            <th>Avg Spd</th>
        </tr>
        <tr>
            <td><input type='text' size='7' name='time'/></td>
            <td><input type='text' size='7' name='2'/></td>
            <td><input type='text' size='7' name='3'/></td>
            <td><input type='text' size='7' name='4'/></td>
            <td><input type='text' size='7' name='5'/></td>
            <td><input type='text' size='7' name='6'/></td>
            <td><input type='text' size='7' name='7'/></td>
            <td><input type='text' size='7' name='8'/></td>
            <td><input type='text' size='7' name='9'/></td>
            <td><input type='text' size='7' name='10'/></td>
            <td><input type='text' size='7' name='11'/></td>
            <td><input type='text' size='7' name='12'/></td>
            <td><input type='text' size='7' name='13'/></td>
            <td><input type='text' size='7' name='14'/></td>
            <td><input type='text' size='7' name='15'/></td>
            <td><input type='text' size='7' name='16'/></td>
            <td><input type='text' size='7' name='17'/></td>
            <td><input type='text' size='7' name='18'/></td>
            <td><input type='text' size='7' name='avgspd'/>
            </td>
        </tr>
    </table><br><input type='submit'/>
</form>

注意:我通过safari的web检查器找到的这段代码全部在一行上,我把它格式化成这样让你更容易检查代码。

应该是

$name = "lap" . strval($i);

PHP 使用 . 连接字符串,而不是 +.