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

标签 php javascript html

我有一个表格,我可以在其中动态添加行。当我提交保存按钮时,我想将每行中的数据获取到一个 php 数组。可以请有人帮我解决这个问题。我是 java-script 的新手,对此知之甚少。谢谢!

<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>

最佳答案

你的代码是正确的,只是那里有一点点变化

<TR>
  <TD><INPUT type="checkbox" name="chk"/></TD>
  <TD> 1 </TD>
  <TD> <INPUT type="text" name="<?php echo $i; ?>"/> </TD>
</TR>

替换为这段代码

<TR>
  <TD><INPUT type="checkbox" name="chkbox[]"/></TD>
  <TD> 1 </TD>
  <TD> <INPUT type="text" name="txtbox[]"/> </TD>
</TR>

你的工作完成了

关于php - 使用 JavaScript 在 HTML 表中动态添加行并通过提交按钮获取每个文本框的文本框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18072765/

相关文章:

php 数字从 mysql asc 排序

javascript - ESLint:let 的第一个实例导致 "unexpected token"错误

javascript - 如果 else 失败,则嵌套后 else 不起作用

javascript - 链接上的 e.preventDefault() 仍会加载页面

c++ - 将 Web 应用程序作为资源嵌入到 C++ Qt 可执行文件中

php - 通过机器人访问网站,但只有在浏览器/人类设置变量之后

php - 字段 is_add(tinyint(1)),行不会显示

php - 如何使用 mysqli 在查询中按月份编号获取月份名称?

javascript - CakePHP - 加载时javascript文件不更新

javascript - highcharts-react 甘特图 : get mouse coordinates from mouse-over