Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery按表单字段列出的ajax数据_Jquery_Ajax_Forms - Fatal编程技术网

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处理表单。
我有以下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();
});