Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.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通过PHP将表单数组传递给Javascript_Javascript_Php_Jquery_Arrays_Ajax - Fatal编程技术网

使用jQuery AJAX通过PHP将表单数组传递给Javascript

使用jQuery AJAX通过PHP将表单数组传递给Javascript,javascript,php,jquery,arrays,ajax,Javascript,Php,Jquery,Arrays,Ajax,我正在通过AJAX和jQuery提交表单,我需要了解如何将表单数组传递给它 例如,我的html类似于: <input id="standard_field" type="text" name="standard_name"> <input id="some_id_1" type="text" name="my_array[my_name_1]"> <input id="some_id_2" type="text" name="my_array[my_name_2]"

我正在通过
AJAX
jQuery
提交表单,我需要了解如何将
表单数组传递给它

例如,我的html类似于:

<input id="standard_field" type="text" name="standard_name">
<input id="some_id_1" type="text" name="my_array[my_name_1]">
<input id="some_id_2" type="text" name="my_array[my_name_2]">
<input id="some_id_3" type="text" name="my_array[my_name_3]">
var foo = $('standard_field').val();
但我不知道如何获取数组数据?另外,它需要从ajax传递到PHP脚本,就像PHP脚本在没有ajax的情况下提交表单一样

下面是一个我通常如何传递数据的示例:

var foo = $('standard_field').val();

var loadUrl = "some_script.php";
var dataObject = { foo: foo };    

getAjaxData(loadUrl, dataObject, 'POST', 'json')

    .done(function(response) {
        //..........
    })

    .fail(function() {
        //......
    });

// End  

function getAjaxData(loadUrl, dataObject, action, type) {

    return jQuery.ajax({
        type: action,
        url: loadUrl,
        data: dataObject,
        dataType: type
    });    

}

因此,首先我如何从表单中获取要传递的数据,其次我如何从jQuery将其传递到PHP脚本,以便PHP将其作为一个数组,就像直接传递到PHP脚本一样?

您应该使用
序列化

HTML:


您应该使用
序列化

HTML:

你可以使用这个插件

示例代码:

JS:

PHP:

你可以使用这个插件

示例代码:

JS:

PHP:


可以使用String.slice方法提取标签名称

var input = $('#myform input');
var data = [];
var name, label, value = '';
for(var i in input) {
    name = input.eq(i).attr('name');
    label = name.splice(9, -1);
    value = input.eq(i).val();
    data[label] = value;
}
data = JSON.stringify(data);
对于检测,当它是一个数组时,您可以使用String.indexOf('[')之类的

对于未知数组结构:

array_name = name.splice(0, name.indexOf('['));
label = name.splice(name.indexOf('['), name.indexOf(']'));

可以使用String.slice方法提取标签名称

var input = $('#myform input');
var data = [];
var name, label, value = '';
for(var i in input) {
    name = input.eq(i).attr('name');
    label = name.splice(9, -1);
    value = input.eq(i).val();
    data[label] = value;
}
data = JSON.stringify(data);
对于检测,当它是一个数组时,您可以使用String.indexOf('[')之类的

对于未知数组结构:

array_name = name.splice(0, name.indexOf('['));
label = name.splice(name.indexOf('['), name.indexOf(']'));

serializeArray:serializeArray:谢谢。我知道serialize,但不知道您可以传递这样的整个表单。谢谢。我知道serialize,但不知道您可以传递这样的整个表单。
var input = $('#myform input');
var data = [];
var name, label, value = '';
for(var i in input) {
    name = input.eq(i).attr('name');
    label = name.splice(9, -1);
    value = input.eq(i).val();
    data[label] = value;
}
data = JSON.stringify(data);
array_name = name.splice(0, name.indexOf('['));
label = name.splice(name.indexOf('['), name.indexOf(']'));