我有一个网页表单,现在看起来像这样。问题是我有一个选项,可以在它们下面添加更多动态行,它们看起来相同并具有相同的名称属性。我有一个提交按钮,它获取所有输入字段的值。提交的值通过对我的PHP的Ajax调用,我必须将它们插入到我的数据库中。
Access:
<tr>
<td><input type"text" name="access[name]"></td>
<td><input type"text" name="access[type]"></td>
<td><input type"text" name="access[description]"></td>
</tr>
student:
<tr>
<td><input type"text" name="student[name]"></td>
<td><input type"text" name="student[type]"></td>
<td><input type"text" name="student[description]"></td>
</tr>
到目前为止,我无法获取数组中输入字段生成的所有值,以便我可以正确地对它们进行排序并将其插入到我的数据库中。
我一直在寻找我的数组结构,看起来像是一个正确的JSON格式。但我不知道如何在Ajax调用中执行此操作。
access[
name:xyz,
type:xyz,
description
]
student[
name:xyz,
type:xyz,
description
]
我的Ajax功能:
$('.submit').on('click',function(){
var access;
$('input[name^="Access"]').each(function() {
access= ($(this).val());
});
var student;
$('input[name^="student"]').each(function() {
student= ($(this).val());
});
$.ajax({
url: '../php/Submission.php',
type: 'post',
data: {access:access,student:student}
},
function(data1)
{
console.log(data1);
}
);
});
我知道我的Ajax函数不是写的,但是我已经尝试了很多代码来使它工作,结果它搞砸了,不知道现在要做什么。
答案 0 :(得分:3)
将您的access
和student
变量更改为数组,并将值添加到它们中(注意:您只需使用this.value
代替$(this).val()
):
var access = [];
$('input[name^="Access"]').each(function() {
access.push(this.value);
});
var student = [];
$('input[name^="student"]').each(function() {
student.push(this.value);
});
编辑如果要命名值而不是使用索引,则需要使用对象而不是数组,并手动提取名称:
var access = {};
$('input[name^="access"]').each(function() {
var name = this.name.substr(7, this.name.length - 8);
access[name] = this.value;
});
var student = {};
$('input[name^="student"]').each(function() {
var name = this.name.substr(8, this.name.length - 9);
student[name] = this.value;
});