如何为php中的循环中的每个文本框指定不同的名称

时间:2012-09-17 13:47:42

标签: php

任何人都可以让我知道如何为php中的循环中的每个文本框指定不同的名称以获取以下代码。

while($data=mysql_fetch_array( $sql )){ 
    print "<tr><td>".$data['idno']." </td><td>".$data['name'] . " </td><td> <input type=text name=obtmarks</td></tr>";
} 

5 个答案:

答案 0 :(得分:1)

你可以使用一个简单明了的计数器:

$i=0;
while($data=mysql_fetch_array( $sql )) 
{ 
    echo "<tr><td>".$data['idno']." </td>
        <td>".$data['name'] . " </td>
        <td> <input type='text' name='obtmarks_".$i."'></td></tr>";
    $i++;
} 

注意:我还更正了您的打开/关闭括号,并将引号放在需要进入元素内部的位置。

答案 1 :(得分:1)

最简单的方法是创建数组中的表单元素。

这是documented at php.net

<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />

因此,您可以使用:

$fmt = "<tr><td>%s</td><td>%s</td><td>input type='text' name='obtmarks[]'></td></tr>\n";

?><table><tr><th>ID</td><th>Name</th></tr><?php

while ( $data=mysql_fetch_array( $sql ) ) {
    printf($fmt, $data['idno'], $data['name']);
}

?></table>

答案 2 :(得分:1)

$i = 0;
while($data=mysql_fetch_array( $sql ))
{
    Print "<tr><td>{$data['idno']}</td><td>{$data['name']}</td><td> <input type=\"text\" name=\"obtmarks{$i++}\"/></td></tr>";
}

保持代码清洁可读。正确使用“”,{}和“”。

编辑:

while($data=mysql_fetch_array( $sql ))
    {
        Print "<tr><td>{$data['idno']}</td><td>{$data['name']}</td><td> <input type=\"text\" name=\"obtmarks[]\"/><input type=\"hidden\" name=\"obtmarks_id[]\" value=\"{$data['idno']}\"/></td></tr>";
    }

然后在第二页上,您将有2个数组在$ _POST中等待,obtmarks []包含用户输入,obtmarks_id []包含相应的ID

    $obtmarks = $_POST['obtmarks[]'];
    $obtmarks_id = $_POST['obtmarks_id[]'];

    foreach($obtmarks as $k => $v) {
        // PSEUDO SQL: INSERT $v .... WHERE id=$obtmarks_id[$k]
    }

答案 3 :(得分:0)

如果名称无关紧要,你可以做一些简单的事情:

$counter = 0;
while($data=mysql_fetch_array( $sql )) 
 { 
    print "<tr><td>".$data['idno']." </td><td>".$data['name'] . " </td><td> <input type='text' name='obtmarks{$counter}' /></td></tr>";
    $counter += 1;
 } 

答案 4 :(得分:0)

<input type=text name=" .$variable." /></td></tr>" $变量可以来自mysql TABLE,字段具有不同的值,或者您可以使用计数器作为下面的答案。