シーケンス化serialize()ajaxによるバックグラウンドへのデータの転送


まずシーケンス化とは何かを理解し,PHPにおける役割は我々の配列を対象に変えることができるという文章を見た.
逆シーケンス化とは、オブジェクトを配列に変換することです.
例を見てみましょう---->ajaxでフォーム値をバックグラウンドに転送します(ここをスキップできます)
$sites = array('Google'=>'$ser', 'Runoob'=>'1111', 'Facebook'=>333);
//   
$serialized_data = serialize($sites);
//     a:3:{s:6:"Google";s:4:"$ser";s:6:"Runoob";s:4:"1111";s:8:"Facebook";i:333;}

//    
$a = unserialize($serialized_data);

//  
//  array(3) {
//   ["Google"]=>
//   string(4) "$ser"
//   ["Runoob"]=>
//   string(4) "1111"
//   ["Facebook"]=>
//   int(333)
//  }

 
ajaxによるバックグラウンドへのデータ転送
ここのバックグラウンドはthinkphpで原生phpを使っていません.
フロントエンドHTMLコンテンツ:



    
    
    
    Document



    
function ceshi() { $.ajax({ type: 'POST', url: "{:url('index/index/test')}", data: $('form').serialize(), dataType: 'json', success: function (data) { console.log(data); }, error: function () { console.log("error"); } }); }

 
Indexコントローラの内容:

これにより、複数選択ボックスのデータをフロントエンドに返します.ここでフロントエンドを返すのはオブジェクトの形式です.
次に、データを配列のフォーマットに変換します.
tpコントローラコード
input( 'a' ),
            'b'=>input( 'b' ),
            'c'=>input( 'c' ),
            'd'=>input( 'd' ), 
            'e'=>input( 'e' ), 
            'f'=>input( 'f' ), 
            'g'=>input( 'g' ), 
        ];
        return json($data);
    }
}

 
フロントエンド処理データは

    function ceshi() {
        $.ajax({
            type: 'POST',
            url: "{:url('index/index/test')}",
            data: $('form').serialize(),
            dataType: 'json',
            success: function (data) {
                console.log(data.a);
                console.log(data.b);
                console.log(data.c);
                console.log(data.d);
                console.log(data.e);
                console.log(data.f);
                console.log(data.g);
                
            },
            error: function () {
                console.log("error");
            }
        });

    }

 
シーケンス受信値のフォーマットは
c=3&g=7&a=1&d=4&b=2&f=6&e=5