繁体   English   中英

是否可以将数据从HTML表发布到另一个PHP页面?

[英]Is it possible to post the data from an HTML table to another PHP page?

这是我关于SO的第一个问题,因此道歉,如果这样做做得不正确,但是我很困惑是否甚至可能做到这一点,更不用说怎么做了。 我有一个表格,该表格内是一个动态生成的表。 如果缺陷仍然很突出,则用户可以将缺陷添加到表中。 因此,行的数量将随每次使用而变化。

<table class="mytable" id="open-defect-table" name="open-defect-table">
    <tr>
        <th name="example">Defect ID</th>
        <th>Status</th>
        <th>Severity</th>
        <th>Priority</th>
        <th>Assigned To</th>
        <th>Defect Link</th>
        <th>Summary</th>
        <th>Comments</th>
    </tr>
</table>

上面是正常情况下以及用户单击按钮时位于页面上的表:

<input type="button" name="open-defect-add-button" id="open-defect-add-button" value="Add" onclick="addOpenDefect()">

它将详细信息添加到表中,并为该行提供唯一的ID。

但是我不确定如何在表单上发布,然后提交到另一页。在我的情况下为“ export.php”

在PHP页面中是这样的:

<h2>Open Defects: <span>
    <?php 
    $selected_option = $_POST["open-defects-select"];
    if ($selected_option == "Yes"){
        // What i'm trying to work out
    } else {
        echo ("None"); 
    }
    ?></span></h2>

在该字段中,我要复制在先前表单中创建的表。

这可能吗? 如果是这样,我将如何处理?或者最好的解决方法是什么?

任何帮助将不胜感激,如果细节有任何遗漏,再次致歉。

您可以为此目的使用jQuery post

var data = {
    key1: "value1",
    key2: "value2",
    key3: "value3"
};

$.post( "ajax/openDefects.php", function( data ) {
  $( ".result" ).html( data );
});

看到这个更多细节官方文档。

您可以为表格中的每个单元格指定一个名称,例如,如果您有一个包含名称和电话的表格,则“名称”列中的所有单元格将共享名称“名称”,而“列”中的所有单元格将共享电话”将共享名称“电话”。 请注意,所有单元共享相同的名称,当这种情况发生时,它们将成为一个数组,因此,您将拥有一个名称数组和另一个电话系列。 示例代码:

zzz.html

<html>
  <head>
    <script type="text/javascript">
function add_row ()
{ var tbl = document.getElementById( "tbl" );
  var row = tbl.insertRow( -1 ); // INSERT ROW AT THE END OF TABLE.
  var cel = row.insertCell( -1 ); // INSERT CELL AT THE END OF ROW.
      cel.innerHTML = "<input type='text' name='name[]'/>";    // ◄■■■ [] ARRAY.
  cel = row.insertCell( -1 ); // REUSING THE SAME VARIABLE.
  cel.innerHTML = "<input type='text' name='phone[]'/>";       // ◄■■■ [] ARRAY.
}
    </script>
  </head>
  <body>
    <button onclick="add_row()">Add row</button>
    <form method="post" action="zzz.php">
      <table id="tbl" border="1">
        <tr>
          <td>Name</td>
          <td>Phone</td>
        </tr>
      </table>
      <input type="submit" value="Submit"/>
    </form>
  </body>
</html>

zzz.php

<?php
if ( isset( $_POST["name"] ) && isset( $_POST["phone"] ) )
     { echo "Names: <br/>";
       foreach ( $_POST["name"] as $name ) // $_POST["name"] IS AN ARRAY.
         echo $name . "<br/>";

       echo "<br/><br/>" .
            "Phones: <br/>";
       foreach ( $_POST["phone"] as $phone ) // $_POST["phone"] IS AN ARRAY.
         echo $phone . "<br/>";
     }
else echo "Error: no data";
?>

将先前的代码复制并粘贴到具有给定名称(zzz.html,zzz.php)的文件中,然后在浏览器中打开zzz.html。 单击几次“添加行”按钮,键入一些数据,然后单击“提交”。 PHP将以数组的形式获取名称和电话并显示其内容。

这里重要的是[]的使用:

cel.innerHTML = "<input type='text' name='name[]'/>";    // ◄■■■ [] ARRAY.

所有名为“ name []”的<input都将成为数组,并将作为数组提交。

想法是将整个表作为数组发送,每列一个数组。 在PHP方面,您将表的数据作为数组获取,您将能够再次重新构建整个表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM