我有这个javascript函数,它创建一个包含相同信息的表单
function aTask(){
var noTask = parseInt(document.getElementById("nwTask").value);
var out = "<form action = \"\" method = \"POST\">"
for (var x = 0 ; x < noTask ; x++){
out = out + "Task Name: <input type = \"text\" id = \"taskName\" class = \"taskInp\" name = \"taskName[]\"><br />"
out = out + "Task Description: <input type = \"text\" id = \"taskDesc\" name = \"taskDesc[]\"><br />"
out = out + "Task Deadline: <input type = \"date\" id = \"taskDead\" name = \"taskDead[]\"><br /><hr>"
}
out = out + "</form>"
document.getElementById("taskList").innerHTML = out
}
我的问题是我不知道如何输出数据库中的输入信息,用户可能会询问最多10个这样的字段。
我的问题是我制作了一个具有相同名称和类型的动态表单,我将如何将其存储到数据库中?
这就是我现在所拥有的,没有任何事情发生
if (isset($_POST["saveNTask"]) && isset($_POST["newTask"])){
$inpCount = $_POST['newTask'];
for ($i = 0 ; $i < $inpCount; $i++){
addProj($_POST["taskName"], $_POST["taskDesc"],$_POST["taskDead"]);
}
}else{
echo "damn";
}
感谢任何有时间阅读和/或回答此问题的人 我的数据库现在是一个简单的数据库它有一个表名task_tbl它将来会成为一个关系数据库但是现在我想学习如何处理这类编程问题
我忘记发帖了
function addProj ($projName, $projDesc, $projDeadLine){
$date = $projDeadLine;
$query = "INSERT INTO task_tbl (task_name , task_desc,task_dateAssign,task_deadline, task_status) VALUES('"+$projName+"','"+$projDesc+"','"+$date+"','"+$projDeadLine+"','"+ToDo+"')";
mysqli_query($con,$query);
mysqli_close($con);
}
答案 0 :(得分:0)
你没有说你正在处理什么样的数据库。
如果它是关系数据库,则需要表示表单的实体与动态元素之间的一对多关系。每次添加表单元素时都会插入一行。
所以它可能看起来像这样(MySQL语法):
create table parent (
pid int not null auto_increment,
name varchar(80) not null
primary key(pid)
);
create table child (
cid int not null auto_increment,
value varchar(80),
pid int,
primary key(cid),
foreign key pid reference parent(pid)
);
您必须先插入表单,获取其主键,并确保在插入新表单子项时将其插入外键列。
查询表单:
select *
from parent
join child
on parent.pid = child.pid
如果它是NoSQL数据库,如MongoDB,您可以序列化JSON并使用密钥存储它。通过提供密钥来获取价值。