2013-10-09 267 views
3

我有一個HTML表與信息。現在我可以添加行刪除使用javascript的按鈕的行。我也可以直接使用Add Row按鈕將信息添加到數據庫,並使用刪除行按鈕從數據庫中刪除數據。但我不想使用這些按鈕,因爲我認爲最好有另一個按鈕將所有信息一次插入數據庫。所以我需要關於如何從HTML表格讀取信息並將其數據插入到mysql數據庫的建議。如何從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> 
+1

你應該發佈一些代碼來獲得合理的幫助。 – webduvet

+0

我不認爲你的deleteRow()調用實際上是基於上面的代碼從數據庫中刪除任何東西。 –

+0

是的,它不是現在添加/刪除數據庫,但我不想這樣做。相反,我想要在HTML表格上插入所有信息的同時插入數據庫。 – EM10

回答

1

你應該單獨的客戶端和服務器端的第一:

客戶端是瀏覽器,HTML表存儲在「瀏覽器」內存,所有的編輯是客戶端的計算機上完成的,你可以從互聯網上斷開並且仍然使用這個頁面 - 它會起作用(添加/刪除行)

服務器端在遠程服務器上工作,不知道將哪些行/列插入到客戶端的HTML表中。

因此,在完成之後,您需要一些機制將數據從客戶端發送到服務器。

第二項:HTML表格關係數據庫表是不同的實體,HTML表格僅僅是數據的可視化表示,關係數據庫表是在特定的數據庫實體(你可以有多個數據庫,每個數據庫可以有幾張表)存儲在光盤上(通常在服務器上)。

HTML表格可以有動態行/列,但RD表只能有動態行,而不是列(不完全正確,有些RDBMS允許刪除列)。

最後 - 你應該解決的2項:

  1. 從客戶端將數據發送到服務器,這樣就可以實現通過將<form action="phpscript.php">...</form>周圍<table>並添加「提交」按鈕,將它,不要忘了存儲量在一些「隱藏」字段中的列/行 - 我想你需要在這些單元格中的數據,所以在每個HTML表格單元格中添加<input>

  2. 將數據存儲在服務器上 - 對於mysql你真的可以使用動態列添加/刪除,但也可以將ROW和COLUMN索引與數據一起存儲,如:

0, 0, dataincell_0_0 
1, 0, dataincell_1_0 
5

是..你有很好的JavaScript代碼添加動態content..wow .. 現在要插入的內容,你可以MySQL的table..yes ... 在做小代碼修改之前,先執行代碼.. 首先你應該明白在數據庫中插入一些東西,你有一個HTML表單元素.. 和controls ..您可以添加動態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代碼如下, 請確保您的表格標籤有一個名爲「dataTable」的ID, 並刪除您複選框,將表單元素覆蓋您的表..bang ...

<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')");   
     } 

    } 
?> 

我覺得這個職位很重要到所有..

相關問題