我已经搜索了这个问题的答案,但找不到任何答案。将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