Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/248.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从HTML表检索数据到PHP_Javascript_Php_Html Table - Fatal编程技术网

Javascript 从HTML表检索数据到PHP

Javascript 从HTML表检索数据到PHP,javascript,php,html-table,Javascript,Php,Html Table,我有一个动态html表,我想使用POST方法从该表中检索数据。有可能这样做吗?你会推荐什么其他方法来实现这一点。 以下是我得到的一个简单示例: <html> <form id="form1" method="post" action="process.php"> <table id="tblSample" name="tblSample"> <tbody> <tr>

我有一个动态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添加


我非常感谢您的回答。

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

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

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

您可以尝试使用:

HTML:


除非您使用表单元素(
input
textarea
,等等)并向其添加
name
属性,否则无法访问这样的表;然后,您可以使用
$\u POST
访问元素


如果您的数据在表中,那么检索数据的最佳方法是使用JavaScript,使用
innerHTML

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

2) 将您的数据放在一些html容器中,比如类名称为“formData\u name”的span,或者id为“formData\u”+name=的span,其中name是该数据的名称。 绑定提交按钮,当用户单击提交时,您将创建一个名为adn return true的添加到dom输入隐藏字段。 3) 您可以通过绑定提交事件通过post发送innerHTML,并为StoreInnerHTML添加隐藏字段,然后在服务器上解析它 4) 您可以在提交操作时替换所有要输入的td


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

IMO,考虑到这两个选项,只需将表和输入/文本区域标记组合起来,而不是使用innerHTML(这需要从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"/>
function submitAction()
{
    var form = document.getElementById("form1");
    form.table_content.value = document.getElementById("tblSample").innerHTML;
    return form.submit();    
}