我有一个表,用于在我的php / html页面上存储用户ID和用户名。表中的数据是从sql表中检索的。
我正在开发一个允许用户在e table(textfield)中更改用户名的页面,按下保存按钮时,数据库中的数据将会更新。
由于行数是动态的,我无法对文本字段的名称进行硬编码。
我能做到这一点有效吗?
如果表中的行是静态的,我这样做是为了识别文本域
<tr>
<td><input name="userid1" type="text" size="40" /></td>
<td><input name="username1" type="text" size="40" /></td>
</tr>
<tr>
<td><input name="userid2" type="text" size="40" /></td>
<td><input name="username2" type="text" size="40" /></td>
</tr>
感谢。
答案 0 :(得分:1)
使用此代码:
首先从表中获取数据:
$query=mysql_query("SELECt * FROM table");
然后循环:
`
?>
<table>
<?php
while($row=mysql_fetch_array($query))
{
$userid=$row['userid'];
$username=$row['username'];
?>
<tr>
<td><input name="<?php echo $userid; ?>" type="text" size="40" /></td>
<td><input name="<?php echo $username; ?>" type="text" size="40" /></td>
</tr>
<?php
}
?>
</table>
`
我认为这会有所帮助。
happyCoding:D
答案 1 :(得分:0)
您可以在显示表单的php / html网站上创建一个包含文本字段总数的隐藏文本字段:
print("<input type = \"hidden\" name = \"numberOfFields\" value = \"".$totalNumber."\" />");
或者您可以在会话中保存该号码:
session_start(); //session_start() has to be at the top of the file
$_SESSION["totalNumberOfFields"] = $totalNumber;
在您的php脚本中保存数据,您可以使用for循环遍历所有这些字段:
if(isset($_POST["numberOfFields"]) && is_numeric($_POST["numberOfFields"])) {
$totalNumber = $_POST["numberOfFields"];
for($i = 1;$i<=$totalNumber;$i++) {
if(isset($_POST["userid".$i] && isset($_POST["username".$i])) {
$userId = $_POST["userid".$i];
$userName = $_POST["username".$i];
//handle data...
}
}
} else {
//not set --> error handling
}
如果您保存了会话中的数据总数,则可以使用以下方式访问它:
$totalNumber = $_SESSION["numberOfFields"]; //make sure you inserted session_start() at the top of the file