【问题标题】:How to fill an HTML Form with (a lot) of records from database?如何用数据库中的(很多)记录填充 HTML 表单?
【发布时间】:2013-08-06 08:02:56
【问题描述】:

我有一个大约有一个 HTML 表单。 120 个输入文本字段。

然后我有一个具有相同表单的 PHP 页面,其中我有这段代码来显示从数据库获取的值。

<input type="text" id="field_1" name="field_1" value="<?php echo $myvalue1; ?>" />

有没有办法从数据库中检索数据并为每个字段填充输入文本值,或者以比指定超过 120 个变量更好的方式执行此操作?

谢谢!

【问题讨论】:

  • 您可以使用循环来实现所需的结果。但是您介意补充一下为什么您的目标是为单个表单提供 120 个输入字段吗?
  • 除了更好的UI设计,考虑使用分页和部分加载页面。
  • 您可以使用循环将每个输入对应到匹配字段。但就我个人而言,我很想知道什么样的表单需要 120 个输入。
  • 等等,什么?我一定是误会了!您实际上是在定义 $myvalue1 ... $myvalue120?
  • @Zanathel 不,目前我正在等待来自 stackoverflow 的好建议;)

标签: php html mysql forms input


【解决方案1】:

PHP 中有一个技巧。您可以使用“[]”运算符命名您的输入。像这样:

<input type="text" id="field_1" name="field[]" value="<?php echo $myvalue1; ?>" />

因此,它将被视为相应 REQUEST 数组中的一个数组(POST 或 GET,取决于您形成的 HTTP 方法)。 要填充输入,只需使用循环即可。

【讨论】:

    【解决方案2】:

    您总是可以将结果存储在一个数组中,然后循环遍历它。

    $q = mysql_query ( ... );
    for ($i = 1; $r = mysql_fetch_row ($q); ++$i)
      printf ('<input tyle="text" id="field_%s" name="field_%s" value="%s"/>', $i, $i, $r[0]);
    

    【讨论】:

      【解决方案3】:

      遍历查询结果并生成文本框

      <?php 
      $sql = "SELECT column FROM table"; 
      
          if ($result = $mysqli->query($sql)) { 
              while($obj = $result->fetch_object()){ 
                  echo "<input type='text' name='field[]' value='". $obj->column ."'> <br>"; // Here is the where you put your textbox in loop
      
              } 
          } 
          $result->close();
      ?> 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-18
        • 1970-01-01
        • 2022-10-13
        • 1970-01-01
        • 2019-06-30
        • 2015-02-15
        相关资源
        最近更新 更多