Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/247.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
Php 使用JavaScript在HTML表中动态添加行,并通过提交按钮获取每个文本框的文本框值_Php_Javascript_Html - Fatal编程技术网

Php 使用JavaScript在HTML表中动态添加行,并通过提交按钮获取每个文本框的文本框值

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)

我有一个可以动态添加行的表。当我提交save按钮时,我想将每一行中的数据获取到一个php数组中。谁能帮我一下吗。我不熟悉java脚本,对它知之甚少。谢谢大家!

<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'
   **/  

}