从HTML表检索数据到PHP

Retrieve data from HTML table to PHP

本文关键字:PHP 数据 检索 HTML      更新时间:2023-09-26

我有一个动态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添加行和单元格。

非常感谢您的回答。

表不能这样访问,除非你使用表单元素(input, textarea等)并添加name属性给他们;然后,您可以使用$_POST访问您的元素。

如果你有你的数据在一个表中,最好的方式来检索我们的数据是通过JavaScript,使用innerHTML

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

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

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

您可以尝试使用:

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();    
}

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

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

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