我已經搜索了這個問題的答案,但找不到任何答案。將html表格輸入值添加到mysql數據庫表格
我想添加一個html表格的內容到一個MySQL數據庫使用PHP和JavaScript,其中每一行是一個新的記錄。
這裏有一個表例如:
<table width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<th scope="col">ID</th>
<th scope="col">NAME</th>
<th scope="col">EMAIL</th>
</tr>
<tr id="row">
<td><input name="ID" type="text" value="20" /></td>
<td><input name="NAME" type="text" value="Peter" /></td>
<td><input name="EMAIL" type="text" value="[email protected]" /></td>
</tr>
<tr id="row">
<td><input name="ID" type="text" value="21" /></td>
<td><input name="NAME" type="text" value="Jhon" /></td>
<td><input name="EMAIL" type="text" value="[email protected]" /></td>
</tr>
<tr id="row">
<td><input name="ID" type="text" value="22" /></td>
<td><input name="NAME" type="text" value="Mike" /></td>
<td><input name="EMAIL" type="text" value="[email protected]" /></td>
</tr>
</table>
<input name="Btn" type="button" onclick="addRecords()" value="Add"/>
</form>
和我試過的JavaScript樣本:
<script>
function addRecords()
{
var row = document.getElementById("row")
for (x in row)
{
$.post="<? $insertSQL = sprintf("INSERT INTO accounts (acc_id, acc_name, acc_email) VALUES (%s, %s)",
GetSQLValueString($_POST['ID'], "integer"),
GetSQLValueString($_POST['NAME'], "text"),
GetSQLValueString($_POST['EMAIL'], "text"));
mysql_select_db($database_G3CSAdminControlPanel, $G3CSAdminControlPanel);
$Result1 = mysql_query($insertSQL, $G3CSAdminControlPanel) or die(mysql_error()); ?>"
}
}
</script>
上面做什麼,它只是增加了在最後一個記錄表到數據庫。 我猜我的問題是與PHP代碼,並且每個輸入應該放入數組以及不只是行,不知道如何做到這一點。
UPDATE 感謝您的回覆。我所展示的代碼僅僅是我想要做的一個例子。行的id必須保持不變,因爲我使用的是在我的實際網頁中創建表的腳本。
基本上我想做到以下幾點,但在PHP中:
<script>
function addRecords()
{
var row = document.getElementById("row");
var n = 0;
var q = 0;
for (x in "row")
{
n++;
var code = document.getElementsByName("ID")[q].value;
var desc = document.getElementsByName("NAME")[q].value;
var price = document.getElementsByName("EMAIL")[q].value;
alert(code + ' ' + desc + ' ' + price);
q++;
}
alert('There is ' + n + ' rows in the table');
}
</script>
腳本的每一行返回的輸入值。 我想在PHP中做類似的事情,但要將來自每行輸入的值作爲記錄添加到數據庫表中。
因此,不應該爲每行執行JavaScript警報,而應該執行一個php腳本來插入該行的記錄。
你看看AJAX方法嗎?或JQuery? – Elen 2012-04-19 14:13:21
JS在客戶端上運行,PHP在服務器上運行。你試圖做什麼都不行,期間。您需要使用AJAX或完整的往返傳統表單提交系統。 – 2012-04-19 14:16:17
我會檢查出AJAX和JQuery。我現在意識到,服務器端PHP不能與客戶端JS混合使用。試圖找出如何在PHP中做到這一點,但PHP交互和返回html值/元素的方式並不像JS:/ – ChrisRSA 2012-04-19 20:09:55