谁能让我知道如何为以下代码循环中的每个文本框分配不同的名称..
while($data=mysql_fetch_array( $sql )){
print "<tr><td>".$data['idno']." </td><td>".$data['name'] . " </td><td> <input type=text name=obtmarks</td></tr>";
}
谁能让我知道如何为以下代码循环中的每个文本框分配不同的名称..
while($data=mysql_fetch_array( $sql )){
print "<tr><td>".$data['idno']." </td><td>".$data['name'] . " </td><td> <input type=text name=obtmarks</td></tr>";
}
您可以使用漂亮而简单的计数器:
$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++;
}
注意:我还更正了您的开/关括号,并将引号放在需要进入元素的位置。
最简单的方法是创建数组中的表单元素。
这记录在 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>
$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[] 和包含相应 ID 的 obtmarks_id[]
$obtmarks = $_POST['obtmarks[]'];
$obtmarks_id = $_POST['obtmarks_id[]'];
foreach($obtmarks as $k => $v) {
// PSEUDO SQL: INSERT $v .... WHERE id=$obtmarks_id[$k]
}
如果名称无关紧要,您可以执行以下简单操作:
$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;
}
<input type=text name=" .$variable." /></td></tr>"
$variable 可能来自 mysql TABLE,具有不同值的字段,或者您可以使用计数器作为下面的答案。