【发布时间】:2017-11-20 16:57:12
【问题描述】:
我正在创建一个多步骤表单,我可以在其中编写一个表单名称,将步骤和输入类型动态添加到表单中,然后生成一个数组或对象(我不确定在我的情况下哪个是最好的)从该表单开始,循环执行步骤并获取每种输入类型的信息等。最后,通过 Ajax 将该对象或数组发送到 PHP。
现在,我正在尝试生成数组或对象,因为我不确定哪个是最好的,也不知道如何生成它。
我认为我需要的是:
var form = {
idForm: "form-" + Date.now(),
name: whatever you want, //get from the form
steps: {
0: {
idStep: "step-" + Date.now(),
name: get from form,
fields: {
0: {
idField: "field-" + Date.now(),
label: field 1,
placeholder: Enter data,
name: field 1,
required: true,
type: text,
options: {...} // this one should be added if type is a select, radio or checkbox.
},
1: {...},
2{...}
}
},
1: {...},
2: {...}
}
}
关于如何生成它的任何提示?欢迎任何提示。
已编辑: 经过一番研究,我终于可以生成上面的对象,我只需要通过这些步骤进行正常循环来获取我需要的每个信息(我使用 jquery .each())。所以为了填充对象,我做了这样的事情:
formObj = {} // create an object
//create the node 'form' in the object and populate with id and name.
formObj.form = { id: "form-"+Date.now(), name: formName.val() };
//then create an array of steps inside the form node
formObj["form"]["steps"] = [];
以此类推,这样我就生成了对象。
当我在 php 中创建一个 print_r 来检查时:
Array
(
[form] => Array
(
[id] => form-1497888655149
[name] => formulario 1
[steps] => Array
(
[0] => Array
(
[name] => step 1
[idStep] => step-1497886778424
[fields] => Array
(
[0] => Array
(
[idField] => input-1497886779390
[label] => txéxt1
[name] => null
[required] => true
[type] => text
[options] => null
)
)
)
)
)
)
【问题讨论】:
-
whatever you want 会抛出语法错误。至少提供一个有效的表单树...
-
@Jonasw 你是什么意思?因为我忘记了逗号?
-
周围有许多表单构建器脚本......检查它们是如何工作的
标签: javascript jquery arrays forms javascript-objects