首页 > 解决方案 > 如何在ajax post中格式化数组

问题描述

我有一个用 php 编码的对话框。提交时,我将数据发送回对话框以通过 ajax 存储(我不希望对话框关闭)。这主要是有效的,但发布数据的格式不是我想要的。这是ajax代码

    $('#but1').click(function() {  
      var apply_to = $("input[name='group-apply']:checked").val();
      var el = document.getElementById('multi-selector');
      var selected = GetSelectValues(el);

      var data = [];
      data[0] = 'apply-to:'+ apply_to;
      data[1] = 'selected:' + selected;
      data = {data};         

       $.ajax({
            url : "example.php",
            type: "POST",
            data : data,
            success:function(result){
              $("#form-container").html(result);
            }
       });
    });   

当上面运行时,对话框中的 php 显示这个

    Array
    (
        [data] => Array
            (
                [0] => apply-to:Include
                [1] => selected:8,9,5,1
            )

    )

为了使用上述内容,我需要像这样访问它,然后分解它以获取值。

    $_POST['data'][0]

我希望数据像这样显示

    Array
    ( 
        [0] => apply-to:Include
        [1] => selected:8,9,5,1
    ) 

或者,理想情况下:

    Array
    ( 
        [apply-to] => Include
        [selected] => 8,9,5,1
    ) 

如果可能的话,有人能解释一下如何做到这一点吗?

标签: phpajaxpostdialog

解决方案


尝试使用它

$('#but1').click(function() {  
  var apply_to = $("input[name='group-apply']:checked").val();
  var el = document.getElementById('multi-selector');
  var selected = GetSelectValues(el);

  var data = [];
  data['apply-to'] = apply_to;
  data['selected'] = selected;
  data = {data};         

   $.ajax({
        url : "example.php",
        type: "POST",
        data : data,
        success:function(result){
          $("#form-container").html(result);
        }
   });
}); 

推荐阅读