jQuery按表单字段列出的ajax数据
我正在用jQuery ajax处理表单。jQuery按表单字段列出的ajax数据,jquery,ajax,forms,Jquery,Ajax,Forms,我正在用jQuery ajax处理表单。 我有以下jQuery代码: $.ajax({ url: 'formprocess.php', type: 'post', data: $('#myForm input[type=\'text\']'), dataType: 'json', success: function(json) { alert('pass'); } }); 我的表格是: <form id="myForm"> <input type="
我有以下jQuery代码:
$.ajax({
url: 'formprocess.php',
type: 'post',
data: $('#myForm input[type=\'text\']'),
dataType: 'json',
success: function(json) { alert('pass'); }
});
我的表格是:
<form id="myForm">
<input type="text" name="parent[47]child[230][26]" value="1" />
<input type="text" name="parent[47]child[230][27]" value="2" />
<input type="text" name="parent[28]child[231][29]" value="3" />
<input type="text" name="parent[28]child[231][31]" value="4" />
</form>
但我想在javascript端将其拆分,以便它分别循环和传递每个父级。因此,在这种情况下,它将回发两次:
$_POST
: array =
parent_id = 47
child: array =
230: array =
26: string = "1"
27: string = "2"
及
因此,我认为我需要使用:
$('#myForm input[type=\'text\']').each(function(i, tbox) {
tboxname = tbox.attr('name');
var myregexp = /parent\[(\d+)\]child\[(\d+)\]\[(\d+)\]/;
var match = myregexp.exec(tboxname);
var parent_id = match[1];
var child = 'child['+match[2]+']['+match[3]+']';
}
但是现在我有2个字符串值,并且丢失了我的对象和值。你是正确的-使用
。在本例中,each()
是正确的方法,但它只允许你迭代每个输入
元素,并且不会真正了解每个元素的name
属性中的“数组”。这似乎是你在这里的首要问题;javascript只是将name
参数的值看作一个字符串,而不是一个值数组
在js眼中,我不会认为这是一个多维数组。。。each()将只看到一个大的元素列表,您需要创建自己的逻辑来解析这些元素
这是我要尝试的
var parsedData = {};
$('#myForm input[type=\'text\']').each(function(i){
var thisInput = $(this);
var thisName = $(this).attr('name');
// parse your string here, by using conditional statements or maybe by using eval()
// ... This is where "your own logic" mentioned above would go =)
parsedData.["someValue"+i] = thisInput.val();
});
…从这里,您可以使用parsedData
var传递到$.ajax
调用中
希望这有助于您是正确的-在本例中使用
.each()
是正确的方法,但它只会让您迭代每个输入
元素,而不会真正了解每个元素的名称
属性中的“数组”。这似乎是你在这里的首要问题;javascript只是将name
参数的值看作一个字符串,而不是一个值数组
在js眼中,我不会认为这是一个多维数组。。。each()将只看到一个大的元素列表,您需要创建自己的逻辑来解析这些元素
这是我要尝试的
var parsedData = {};
$('#myForm input[type=\'text\']').each(function(i){
var thisInput = $(this);
var thisName = $(this).attr('name');
// parse your string here, by using conditional statements or maybe by using eval()
// ... This is where "your own logic" mentioned above would go =)
parsedData.["someValue"+i] = thisInput.val();
});
…从这里,您可以使用parsedData
var传递到$.ajax
调用中
希望这对我有帮助,这确实让我走了。我已经把它分解,得到了我的parent_id变量。但是现在我如何让剩下的数据作为数组传回呢。。。也许你可以修改你原来的问题?至于您的多维
子数组,您是需要在每个数组中实际传递整个数据数组,还是只需要数字就可以返回php?如果是前者,了解阵列中需要什么样的数据会有所帮助。如果是后者,您能否将Regex
(或String.split()
)中的值从name
字符串中提取出来,并作为对象发布到php?也就是说,{'parent':123,'child':[230,26],'string':3}
?这确实让我走了。我已经把它分解,得到了我的parent_id变量。但是现在我如何让剩下的数据作为数组传回呢。。。也许你可以修改你原来的问题?至于您的多维子数组,您是需要在每个数组中实际传递整个数据数组,还是只需要数字就可以返回php?如果是前者,了解阵列中需要什么样的数据会有所帮助。如果是后者,您能否将Regex
(或String.split()
)中的值从name
字符串中提取出来,并作为对象发布到php?例如,{'parent':123,'child':[230,26],'string':3}
?
var parsedData = {};
$('#myForm input[type=\'text\']').each(function(i){
var thisInput = $(this);
var thisName = $(this).attr('name');
// parse your string here, by using conditional statements or maybe by using eval()
// ... This is where "your own logic" mentioned above would go =)
parsedData.["someValue"+i] = thisInput.val();
});