使用PHP从html表单/表向MySQL提交动态行数
Submitting a dynamic number of rows from html form/table to MySQL using PHP
所以我在堆栈溢出的帮助下写了下面的代码。我们的目标是用4个值动态地获取行数,并通过一个提交按钮将所有行插入到mysql表中。
下面的代码可以工作,但只插入最后一行。任何帮助都很感激,谢谢!托德
<html>
<head>
<script>
function deleteRow(row)
{
var i=row.parentNode.parentNode.rowIndex;
document.getElementById('FIRST').deleteRow(i);
}
function insRow()
{
console.log( 'hi');
var x=document.getElementById('FIRST');
var new_row = x.rows[1].cloneNode(true);
var len = x.rows.length;
new_row.cells[0].innerHTML = len;
var inp1 = new_row.cells[1].getElementsByTagName('input')[0];
inp1.id += len;
inp1.value = '';
var inp2 = new_row.cells[2].getElementsByTagName('input')[0];
inp2.id += len;
inp2.value = '';
var inp3 = new_row.cells[3].getElementsByTagName('input')[0];
inp3.id += len;
inp3.value = '';
var inp4 = new_row.cells[4].getElementsByTagName('input')[0];
inp4.id += len;
inp4.value = '';
x.appendChild( new_row );
} </script>
</head>
<body>
<form action="insertform.php" method = "post">
<table id="FIRST" border="1">
<tr>
<td>Line</td>
<td>Value</td>
<td>Selector</td>
<td>Start Frequency</td>
<td>Stop Frequency</td>
<!--<td>Delete?</td>
<td>Add Rows?</td> -->
</tr>
<tr>
<td>1</td>
<td><input type="number" name = "Value1"/></td>
<td><input type="text" list="Selector" name="Selector" />
<datalist id="Selector" >
<option value=">">
<option value="<">
<option value="=">
</datalist>
</td>
<td><input type="number" name="StartFreq"/></td>
<td><input type="number" name="StopFreq"/></td>
</tr>
</table>
<td><input type="button" id="addmoreFIRSTbutton" value="Add More Lines" onclick="insRow()"/></td>
<input type = "submit" name ="submit">
</form>
<?php
if(isset($_POST['submit'])){
$servername = "localhost";
$username = "root";
$password = "mellow";
$dbname = "yellow";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "INSERT INTO FIRST ( Value, Selector, StartFreq, StopFreq)
VALUES ('$_POST[Value1]','$_POST[Selector]','$_POST[StartFreq]','$_POST[StopFreq]')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
}
?>
</body>
</html>
我已经添加了以下的查询和添加[]建议,但我仍然需要帮助转换数组到一个可用的PHP/SQL语句。
见下文
if($_POST[submit])
{
foreach ($_POST['Line'] as $key => $value)
{
$Line = $_POST["Line"][$key];
$Value = $_POST["Value"][$key];
$Selector = $_POST["Selector"][$key];
$StartFreq = $_POST["StartFreq"][$key];
$StopFreq = $_POST["StopFreq"][$key];
$sql = mysql_query("insert into FIRST values ('$Line', '$Value','$Selector', '$StartFreq', '$StopFreq')");
}
}
正如Charles所说,将[]放在每个输入字段名称的末尾,以便后端php代码将它们视为数组。然后,在php代码中,使用foreach循环遍历数组。在foreach循环中,动态构造SQL INSERT语句并执行它们,每行执行一条。我一直都是这么做的。
相关文章:
- 无法获取 AJAX 表单来提交 MySQL 数据
- 提交按钮,调用js函数,然后发布到mysql
- 将Jquerys的日期选择器提交到mysql时遇到问题
- 在不提交表单的情况下,在两个texbox中比较mysql数据库中的值
- Php:如何在不提交表单的情况下从mysql数据库中获取文本框值
- PHP/MySQL-数据库数据的复选框,提交2个参数
- 预装内容;如果连接正常,则不需要访问Internet即可显示onclick+mysql提交的新内容
- 如何提交表格,并在每个不同的'选择mysql-query'并将答案插入mysql数据库
- 提交按钮未将表单数据发送到 mysql - jquery 问题
- 这里我有一个HTML表单和PHP MySQL表,在表中输入值并按下提交按钮后,不会出现任何输出
- 如何添加图像到mysql数据库,当用户提交他们的图像
- 我如何提交一个没有提交按钮的“文件”输入,然后在同一脚本中做mysql更新
- 如何通过使用PHP,Angular.js和MySQL的单个用户提交在多行插入值
- 如何根据数据库下拉列表的mysql计数限制或停止表单提交?
- 如何提交mysql查询时,点击链接,使用onclick
- Textarea不能用wysiwyg编辑器提交到MySQL
- 单选按钮值mysql没有提交
- 地理编码不工作在php mysql提交表单
- 如何检查在PHP文件中使用MySQL提交成功的数据
- 仅当提交的分数高于现有分数时,才更新mysql数据库的分数