问题描述
我正在尝试设计一种动态表单,如果用户需要插入多个资源人员详细信息,他们可以单击 + 号,然后将再次显示相同的文本框。动态表单中的值应同时存储在数据库中。 下面显示的图片是我的动态表格
Event.js(反应)
function Event() {
const [inputFields,setInputFields] = useState([
{
ResourcePersonName: "",ResourcePersonDesignation: "",ResourcePersonContact: "",ResourcePersonEmail: "",},]);
const handleInputChange = (index,event) => {
const values = [...inputFields];
if (event.target.name === "ResourcePersonName") {
values[index].ResourcePersonName = event.target.value;
} else if (event.target.name === "ResourcePersonDesignation") {
values[index].ResourcePersonDesignation = event.target.value;
} else if (event.target.name === "ResourcePersonContact") {
values[index].ResourcePersonContact = event.target.value;
} else {
values[index].ResourcePersonEmail = event.target.value;
}
setInputFields(values);
};
const onSubmit = (e) => {
Axios.post("http://localhost:3001/create",{
data: [...inputFields]
console.log("Data",data);
}).then(() => {
console.log("success!!");
});
};
从上图你可以看到,在浏览器中,当我输入详细信息并提交时,我可以看到我在控制台中输入的两个值
event.js(节点js)
router.post('/create',(req,res) => {
const data=req.body;
console.log ("data recieved from client side",data);
let {ResourcePersonName,ResourcePersonDesignation,ResourcePersonContact,ResourcePersonEmail}= [data];
db.query(
`INSERT INTO resourceperson_details (Resourceperson_name,Resourceperson_designation,Resourceperson_contact,Resourceperson_email) VALUES ('${ResourcePersonName}','${ResourcePersonDesignation}','${ResourcePersonContact}','${ResourcePersonEmail}');`,(err,result) => {
if (err) {
console.log(err);
} else {
console.log(result);
res.send("Values Inserted");
}
}
);
});
但只有一行被存储在数据库中,而且存储在数据库中的数据显示未定义。
有人可以纠正我哪里出错或建议我在这里做什么
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)