js动态增加表单,php接收所有表单数据,写入数据库
时间: 2024-05-08 08:17:18 浏览: 191
动态添加表单
以下是一个示例代码,实现了动态增加表单,并通过PHP接收和处理所有表单数据,最终将数据写入数据库:
HTML代码:
```
<!DOCTYPE html>
<html>
<head>
<title>动态增加表单</title>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
</head>
<body>
<form id="myForm" action="process_form.php" method="post">
<fieldset>
<legend>表单信息</legend>
<div id="formContainer">
<div>
<label>姓名:</label>
<input type="text" name="name[]" required>
</div>
<div>
<label>年龄:</label>
<input type="number" name="age[]" required>
</div>
</div>
<button type="button" id="addForm">增加表单</button>
<button type="submit">提交</button>
</fieldset>
</form>
<script>
$(document).ready(function() {
$("#addForm").click(function() {
var newForm = '<div>' +
'<label>姓名:</label>' +
'<input type="text" name="name[]" required>' +
'</div>' +
'<div>' +
'<label>年龄:</label>' +
'<input type="number" name="age[]" required>' +
'</div>';
$("#formContainer").append(newForm);
});
});
</script>
</body>
</html>
```
JavaScript代码使用jQuery,当点击“增加表单”按钮时,会在`formContainer`中动态添加一个新的表单。
PHP代码:
```
<?php
// 连接数据库
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 获取表单数据
$nameArray = $_POST['name'];
$ageArray = $_POST['age'];
// 将数据写入数据库
for ($i = 0; $i < count($nameArray); $i++) {
$name = $nameArray[$i];
$age = $ageArray[$i];
$sql = "INSERT INTO myTable (name, age) VALUES ('$name', $age)";
if ($conn->query($sql) !== TRUE) {
echo "Error: " . $sql . "<br>" . $conn->error;
}
}
// 关闭数据库连接
$conn->close();
?>
```
PHP代码首先连接数据库,然后通过`$_POST`全局变量获取表单数据,使用`count()`函数获取表单数据的数量,遍历每个表单数据,将其写入数据库中。最后关闭数据库连接。注意,这里直接将表单数据拼接到SQL语句中,存在SQL注入的风险,应该使用参数化查询来避免这个问题。
阅读全文