在JavaScript中为表单元素生成键值对


Making Key Value pair for the form elements in JavaScript

我有一个模块,其中创建的表单是动态的。因此,输入的数量可以一直推迟。此外,数组键也可以延迟。

我目前张贴表格的方法是:

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/