从动态创建的表中的文本字段中获取数据

时间:2014-08-06 13:02:11

标签: php

我有一个表,用于在我的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>

感谢。

2 个答案:

答案 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