我有一个模块,其中创建的表单是动态的。因此,输入的数量可以一直推迟。此外,数组键也可以延迟。
我目前张贴表格的方法是:
name=form_options[选项1]value=1
在使用POST提交表单时,我在$_POST中获得了数组形式的表单,如下所示。
form_options(
option_1 => 1
)
但是,现在我正在尝试使用AJAX来实现同样的东西。因此,我需要一个通用模块来获取所有表单值。我找到了一种方法。
var objectResult = $('#options_form').serializeArray();
console.log(objectResult);
这给了我这样的结果:
0: Object
name: "form_options[option_1]"
value: "1"
如何解析这个结果以获得类似$_POST数组的数组,我可以将其作为AJAX中的数据发送。
p.S:所有表单元素都有name字段作为form_options[key]
您应该使用它来获取PHP文件中的post数据。
//你可以这样使用var objectResult=$('#options_form').serializeArray();$.ajax({type:"POST",//输入请求类型GET/POSTurl:'action.php',//在此处输入您的ajax文件url,dataType:'json',//如果您使用的是dataTypeJSON,那么在php文件中使用die(json_encode($resultArray));data:objectResult,//将您的对象放在此处beforeSend:function(){警报("之前");},错误:函数(数据){console.log(数据);},成功:功能(响应){console.log(响应);}});//在php文件中,这样获取值$_POST['form_options']
这样尝试,在JQuery中:
var objectResult = $('#options_form').serializeArray();
$.ajax({
type: 'POST',
url: 'yoururl'',
data: objectResult ,
success:function(data){
alert(data);
}
});
在您的php:中
<?php echo var_dump($_POST);?>
您可以直接将jquery serialize
与ajax一起使用,不需要使用serializeArray
:
$.ajax({
type:"post",
url:"formHandleSkript.php",
data: $("#options_form").serialize(),
success: function(response){
$(".result").html(response);
}
});
有关更多信息,请参阅http://api.jquery.com/serialize/