我有一个包含信息的HTML表格。现在,我可以使用javascript使用按钮添加行并删除行。我还可以使用">添加行"按钮直接将信息添加到数据库中,并使用"删除行"按钮从数据库中删除数据。但我不想使用这些按钮,因为我认为最好有另一个按钮一次将所有信息插入数据库。所以我需要有关如何从 HTML 表中读取信息并将其数据插入 mysql 数据库的建议。
这是代码:现在,代码不会将数据插入数据库。
<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;
var cell3 = row.insertCell(2);
cell3.innerHTML = rowCount;
var cell4 = row.insertCell(3);
cell4.innerHTML = rowCount;
var cell5 = row.insertCell(4);
cell5.innerHTML = rowCount;
var cell6 = row.insertCell(5);
cell6.innerHTML = rowCount;
}
function deleteRow(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for(var i=1; 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')" />
<TABLE id="dataTable" border="1">
<tr>
<th><INPUT type="checkbox" name="chk[]"/></th>
<th>Make</th>
<th>Model</th>
<th>Description</th>
<th>Start Year</th>
<th>End Year</th>
</tr>
</TABLE>
</BODY>
</HTML>
是的。你有很好的JavaScript代码来添加动态内容。哇。。现在,您要将该内容插入到MySQL表中。是的,你可以...在做代码的小修改之前。首先,您应该了解向数据库插入一些内容,您有一个HTML表单元素。和控制..您可以动态添加 HTML 表单元素,如下所示
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 = "<input type='text' name='item[]'>";
var cell3 = row.insertCell(2);
cell3.innerHTML = "<input type='text' name='price[]' />";
var cell4 = row.insertCell(3);
cell4.innerHTML = "<input type='text' name='qty[]' />";
}
保持删除方法不变,但仅更改此行
var i=1
自
var i=0
现在更改您的 HTML 代码如下,确保您的表体标记具有名为"数据表"的 ID,并删除复选框,放置表单元素以覆盖您的表格。砰。。。
<INPUT type="button" value="Add Row" onClick="addRow('dataTable')" />
<INPUT type="button" value="Delete Row" onClick="deleteRow('dataTable')" />
<form action="" method="post" name="f">
<TABLE width="425" border="1">
<thead>
<tr>
<th width="98"></th>
<th width="94">Item</th>
<th width="121">Price</th>
<th width="84">Qty</th>
</tr>
</thead>
<tbody id="dataTable">
</tbody>
</TABLE>
<INPUT type="submit" value="Insert" name="submit" />
</form>
创建 mysql 数据库,然后创建表下面是示例
CREATE TABLE `your_table_name` (
`id` int(11) NOT NULL auto_increment,
`item` varchar(200) NOT NULL,
`price` varchar(200) NOT NULL,
`qty` varchar(200) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
太好了... 现在这是有趣的部分。我使用php语言将数据插入数据库。确保应创建数据库连接。
<?php
if($_POST[submit])
{
foreach ($_POST['item'] as $key => $value)
{
$item = $_POST["item"][$key];
$price = $_POST["price"][$key];
$qty = $_POST["qty"][$key];
$sql = mysql_query("insert into your_table_name values ('','$item', '$price', '$qty')");
}
}
?>
我认为这篇文章对所有人都很重要..
首先,您应该将客户端和服务器端分开:
客户端是浏览器,HTML表存储在"浏览器"的内存中,所有编辑都是在客户端的计算机上完成的,您可以断开与Internet的连接并仍然使用此页面 - 它将起作用(添加/删除行(
服务器端在远程服务器上工作,不知道哪些行/列插入到客户端的HTML表中。
因此,完成后,您需要一些机制将数据从客户端发送到服务器。
第二项:HTML表和关系数据库表是不同的实体,HTML表只是数据的可视化表示,关系数据库表是存储在光盘上的特定数据库中的实体(可以有多个数据库,每个数据库可以有多个表(。
HTML 表可以有动态行/列,但 RD 表只能有动态行,不能有列(不太正确,一些 RDBMS 允许删除列(。
最后 - 你应该解决 2 个项目:
将数据从客户端发送到服务器,这可以通过在
<table>
周围放置<form action="phpscript.php">...</form>
并向其添加"提交"按钮来实现,不要忘记在一些"隐藏"字段中存储列/行的数量,也 - 我想你需要这个单元格中的数据,所以在每个 HTML 表格单元格中添加<input>
在服务器上存储数据 - 对于 mysql,您确实可以使用动态列添加/删除,但您也可以只存储带有数据的 ROW 和 COLUMN 索引,例如:
、0、dataincell_0_01, 0, dataincell_1_0