序列化表单的数据并将其反序列化为关联数组

时间:2016-01-15 07:47:07

标签: javascript php

当我使用$('#myForm').serialize()发布表单的所有字段(它只包含许多单选按钮组)时,我得到一个这样的POST数据:

radio1=blue&radio2=red&radio3=white

但我不知道如何在PHP中解码(反序列化)它以获得这样的关联数组:

$myArray = array("radio1"=>"blue", "radio2"=>"red", "radio3"=>"white");

编辑:以下是html代码:

for( $i=1; $i<=$unknownNumber; $i++ ){

   echo("<input type=\"radio\" name=\""."radio".$i."\" value=\"blue\" checked>");
   echo("<input type=\"radio\" name=\""."radio".$i."\" value=\"red\">");
   echo("<input type=\"radio\" name=\""."radio".$i."\" value=\"white\">");
}

以下是js代码:

$(document).ready(function() {

    $('input[name^="radio"]').on('click', function() {
        $.post( "process.php", $("#myForm").serialize(), function(data){
            alert('Good');
        });
    });
});

3 个答案:

答案 0 :(得分:1)

您可以在php中使用parse_str函数:

 $arr = array();
 parse_str('radio1=blue&radio2=red&radio3=white',$arr);
var_dump($arr);

PHP parse_str Function

答案 1 :(得分:0)

你不需要(反序列化)在php中 使用$_POST['radio1'] (It contains the value 'blue')

$_POST type array()包含Ajax或submit

发送的所有帖子数据

答案 2 :(得分:0)

array(3) {
  ["radio1"]=>
  string(4) "blue"
  ["radio2"]=>
  string(3) "red"
  ["radio3"]=>
  string(5) "white"
}

<强>输出:

{{1}}