【问题标题】:Retrieve data from HTML table to PHP从 HTML 表中检索数据到 PHP
【发布时间】:2011-08-29 20:05:05
【问题描述】:

我有一个动态 html 表,我想使用 POST 方法从该表中检索数据。是否有可能做到这一点?你会推荐什么其他方法来实现这一点。 这是我得到的一个简单示例:

<html>
      <form id="form1" method="post" action="process.php">
         <table id="tblSample" name="tblSample">
         <tbody>
            <tr>
                <td>
                John Appleseed
                </td>    
                <td>
                Australia
                </td>
           </tr>
           <tr>
              <td>
              Mary Poppins
              </td> 
              <td>
              USA
              </td>   
            <tr>  
          </tbody>
          </table> 
       </form>
</html>

也许可以将信息存储在 javascript 数组或变量中以便将其发布到操作文件中,我不确定。

我不知道这是否有什么关系,但表格是动态生成的。行和单元格由用户使用 javascript 添加。

非常感谢您的回答。

【问题讨论】:

    标签: javascript php html-table


    【解决方案1】:

    不能像这样访问表格,除非您使用表单元素(inputtextarea 等)并向它们添加name 属性;然后,您可以使用$_POST 访问您的元素。

    如果您将数据保存在表格中,检索我们数据的最佳方式是通过 JavaScript,使用 innerHTML

    【讨论】:

    • IMO,考虑到这两个选项,通常将表格和输入/文本区域标签组合在一起而不是使用innerHTML(无论如何都需要解析您需要的数据) .
    【解决方案2】:

    您可以将表单的innerHTML 分配给一个变量并使用AJAX 将其作为字符串发送回服务器,或者将其存储在textarea 中并执行相同操作。无论如何,您需要解析字符串以提取数据。

    【讨论】:

      【解决方案3】:

      表格不是表单控件,即使包含在表单标记中(如您的示例中),也不会作为表单数据提交。

      如果您希望提交表格数据,您需要使用 Javascript 来提取它。然后,您可以将数据插入隐藏的表单元素,或通过 AJAX 调用提交数据。

      【讨论】:

        【解决方案4】:

        你可以尝试使用:

        HTML:

        <form id="form1" method="post" action="process.php" onSubmit="submitAction();">
            <input type="hidden" name="table_content" id="table_content"/>
            <input type="submit" name="submit" value="Send"/>
        

        JavaScript:

        function submitAction()
        {
            var form = document.getElementById("form1");
            form.table_content.value = document.getElementById("tblSample").innerHTML;
            return form.submit();    
        }
        

        【讨论】:

          【解决方案5】:

          这是解决此问题的多种方法。例如: 1)使用ajax: 将您的数据放在某个 html 容器中 - 例如类名称为“formData_name”的跨度或 id= 'formData_'+name = 其中名称是此数据的名称。 然后你在 JS 中搜索所有这些 span 并通过 ajax 发送。 如果您使用 jquery,这非常简单。在纯 js 中这也不难,但代码会更大。

          2) 将您的数据放入某个 html 容器中 - 例如类名称为“formData_name”的 span 或 id= 'formData_'+name = 其中 name 是此数据的名称。 绑定提交按钮,当用户单击提交时,您会创建一个添加到 dom 输入隐藏字段的名称并返回 true。 3)您可以通过绑定提交事件并为存储innerHTML添加隐藏字段并在服务器上解析它来发送innerHTML 4)您可以替换所有 td 以输入提交操作

          但是所有这些解决方案都不好,如果你必须这样做,那么你的项目架构很糟糕

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-05-21
            • 2021-05-25
            • 1970-01-01
            相关资源
            最近更新 更多