[英]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.