我正在尝试创建一个表单构建器,使用户能够生成调查表单/页面。
生成表单后,表单属性存储在表格中。
问题1: 我在哪里可以存储表单属性,完全知道用户可能在表单中添加的字段数是未知的。
问题2: 当某些人通过例如完成调查表格时,我在何处以及如何存储通过生成的表单提交的数据。
我应该为每个表单属性动态创建新表吗?如果是的话,如果创建了超过一百万的格式,那就转化为一百万个表格。
这是多租户发挥作用的地方。
请根据最佳做法提供答案。
答案 0 :(得分:0)
我想我得到了你要问的内容,但为什么不创建一个包含100列的表,标记为1-100。设置用户可以创建的字段数量限制(限制100)。 然后,POST字段并添加一个sql查询来存储值...?
评论回答 如果用户已经登录填写此表单,我将亲自在同一页面上执行POST请求。
<?php if (isset($_POST['field1'])){
$valueforField1 = $_POST['field1'];
$valueforField2 = $_POST['field2'];
$valueforField3 = $_POST['field3'];
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "INSERT INTO Survey (field1, field2, field3) // I guess you would `have to add 100 fields here to accommodate the fields in your DB Also, you can set a default value in MySQL that way if field 56-100 is not set it has a value like 0 or add the value in this php file`
VALUES ('$valueforField1', '$valueforField2', '$valueforField3')";
if ($conn->query($sql) === TRUE) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}
$conn->close(); ?>
评论答案或者如果您想等待用户登录,您可以将所有值存储在SESSION变量中。
<?php
session_start();
if (isset($_POST['field1'];)){
if (!(isset($_SESSION['email']))){
$_SESSION['field1'] = $_POST['field1'];
// You would have to do 100 of these
}
}
?>