关于将数据插入数据库,我遇到了一个小问题。我会尝试尽可能准确地解释数据。
我正在制作一个表单制作者,我已经有了一个(糟糕的做法)实现,因此我将其重写为更好的实现。
表:
app_forms
- id
- name
app_questions
- id
- form_id
- type
- name
- label
- placeholder
- order
app_possible_answers
- id
- vraag_id
- label
- value
- order
这些是我创建表单的表格。我认为它说明了它是如何运作的。我首先在app_form中创建表单,并且有问题(app_questions)链接到表单,app_possible_answers用于选择,广播和复选框类型的问题。
如果选择将textfield元素添加到表单中,则下面是textfield元素的片段:
<div class="input-group">
<span style="width:15%" style="width:15%" class="input-group-addon" id="basic-addon1">Name</span>
<input type="text" name="textfieldname[]" class="form-control" placeholder="Field tablename" aria-describedby="basic-addon1" required />
<span class="input-group-addon" id="questionfornametextfield">?</span>
</div>
<div class="input-group">
<span style="width:15%" class="input-group-addon" id="basic-addon2">Label</span>
<input name="textfieldlabel[]" type="text" class="form-control" placeholder="Label" aria-describedby="basic-addon2" required />
<span class="input-group-addon" id="questionforlabeltextfield">?</span>
</div>
<div class="input-group">
<span style="width:15%" class="input-group-addon" id="basic-addon3">Placeholder</span>
<input name="textfieldplaceholder[]" type="text" class="form-control" placeholder="Placeholder" aria-describedby="basic-addon3" required />
<span class="input-group-addon" id="questionforplaceholdertextfield">?</span>
</div>
正如您所看到的,我给输入后面带有[]的名称,因此它被放入一个数组并发送到服务器。这样我可以确保多个文本字段彼此区分,并且我可以在表单中添加多个文本字段。
我现在陷入困境的是我需要将它插入到我的数据库中,就像我如何将数组中的数据组合在一起以便插入正确。
这是发送的对象。这是一个包含2个文本字段的表单,我用JSON对其进行了字符串化,以便更具可读性:
[
{
"name": "formname",
"value": "Formname"
},
{
"name": "textfieldtype[]",
"value": "textfield"
},
{
"name": "textfieldname[]",
"value": "name textfield one"
},
{
"name": "textfieldlabel[]",
"value": "label textfield one"
},
{
"name": "textfieldplaceholder[]",
"value": "placeholder textfield one"
},
{
"name": "textfieldtype[]",
"value": "textfield"
},
{
"name": "textfieldname[]",
"value": "name textfield two"
},
{
"name": "textfieldlabel[]",
"value": "label textfield two"
},
{
"name": "textfieldplaceholder[]",
"value": "placeholder textfield two"
}
]
但是如何确保将正确的数据分组并插入app_questions表中。我在PHP中使用了这段代码,但是我被卡住了:
//formname
foreach($formelementen as $key => $value)
{
//get form name
if($key == 'formname')
{
echo $value . "\n";
}
}
提前致谢。
答案 0 :(得分:0)
我解决了自己的问题。我将每个字段更改为相同的名称,因此对于每种类型(是textarea,textfield等),所以它的类型[],名称[],
我使用for循环来计算数组并检查。