Php 使用JavaScript在HTML表中动态添加行,并通过提交按钮获取每个文本框的文本框值
我有一个可以动态添加行的表。当我提交save按钮时,我想将每一行中的数据获取到一个php数组中。谁能帮我一下吗。我不熟悉java脚本,对它知之甚少。谢谢大家!Php 使用JavaScript在HTML表中动态添加行,并通过提交按钮获取每个文本框的文本框值,php,javascript,html,Php,Javascript,Html,我有一个可以动态添加行的表。当我提交save按钮时,我想将每一行中的数据获取到一个php数组中。谁能帮我一下吗。我不熟悉java脚本,对它知之甚少。谢谢大家! <HTML> <HEAD> <TITLE> Add/Remove dynamic rows in HTML table </TITLE> <SCRIPT language="javascript"> function addRow(tableID)
<HTML>
<HEAD>
<TITLE> Add/Remove dynamic rows in HTML table </TITLE>
<SCRIPT language="javascript">
function addRow(tableID) {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var cell1 = row.insertCell(0);
var element1 = document.createElement("input");
element1.type = "checkbox";
element1.name="chkbox[]";
cell1.appendChild(element1);
var cell2 = row.insertCell(1);
cell2.innerHTML = rowCount + 1;
var cell3 = row.insertCell(2);
var element2 = document.createElement("input");
element2.type = "text";
element2.name = "txtbox[]";
cell3.appendChild(element2);
}
function deleteRow(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for(var i=0; i<rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if(null != chkbox && true == chkbox.checked) {
table.deleteRow(i);
rowCount--;
i--;
}
}
}catch(e) {
alert(e);
}
}
</SCRIPT>
</HEAD>
<BODY>
<INPUT type="button" value="Add Row" onClick="addRow('dataTable')" />
<INPUT type="button" value="Delete Row" onClick="deleteRow('dataTable')" />
<form action="" method="post">
<?php $i= 1; ?>
<TABLE id="dataTable" width="350px" border="1">
<TR>
<TD><INPUT type="checkbox" name="chk"/></TD>
<TD> 1 </TD>
<TD> <INPUT type="text" name="harsh"/> </TD>
</TR>
</TABLE>
<input name="saveNewSales" type="submit" value="Save" id="button2" style="text-align:center"/>
</form>
<?php
foreach($_POST as $name => $content) { // Most people refer to $key => $value
echo "The HTML name: $name <br>";
echo "The content of it: $content <br>";
}
?>
</BODY>
</HTML>
在HTML表中添加/删除动态行
函数addRow(tableID){
var table=document.getElementById(tableID);
var rowCount=table.rows.length;
var row=table.insertRow(rowCount);
var cell1=行插入单元格(0);
var element1=document.createElement(“输入”);
element1.type=“复选框”;
element1.name=“chkbox[]”;
单元格1.附加子元素(元素1);
var cell2=行插入单元格(1);
cell2.innerHTML=rowCount+1;
var cell3=行插入单元格(2);
var element2=document.createElement(“输入”);
element2.type=“text”;
element2.name=“txtbox[]”;
第三单元附属物(第二单元);
}
函数deleteRow(tableID){
试一试{
var table=document.getElementById(tableID);
var rowCount=table.rows.length;
对于(var i=0;i
您的代码是正确的,只是在那边有一点变化
<TR>
<TD><INPUT type="checkbox" name="chk"/></TD>
<TD> 1 </TD>
<TD> <INPUT type="text" name="<?php echo $i; ?>"/> </TD>
</TR>
1.
var rows=getElementsByTagName(“tr”);
var noOfRows=rows.length;
对于(int i=0;使用name属性调用输入(选中复选框和字段)将被传递到PHP中的$_POST数组中,因此您基本上将它们放在一个数组中。您应该熟悉jQuery。它在mho中是一个出色的JS库,它使JS中的许多事情变得简单(如果可能的话)。我知道,学习另一种“语言”总是额外的工作,但绝对值得。使用jQuery你会发现一些优雅的方法来完成你的项目。我像你说的那样更改了代码。它只给出了两行的值。有没有办法确定它是否是文本框。这很有效..如果我有三个文本框,我如何确定从哪一列获取数据1只需像这样解析名称..txtbox[1],txtbox[2]…为此,您可以根据代码使用$i。
<TR>
<TD><INPUT type="checkbox" name="chkbox[]"/></TD>
<TD> 1 </TD>
<TD> <INPUT type="text" name="txtbox[]"/> </TD>
</TR>
var rows=getElementsByTagName("tr");
var noOfRows=rows.length;
for(int i=0;i<noOfRows;i++){
var html=rows[i].innerhtml; /*a single row's inner html say (<td>apple</td><td>25</td>)*/
var td=html.match(/(?!<td>)([\s*\w*]*)[^<\/td>]/g);
/**
td[0] is 'apple', td[1] is '25'
**/
}