0

jQuery を使用してシリアル化された情報を MySQL データベースに保存しています。

$(function () {
    $("#sortable").sortable({
        stop: function (event, ui) {
            $("#q35list").val($(this).sortable('serialize'));
        }
    });
    $("#sortable").disableSelection();

これにより、関連情報が DB ファインに保存されます (.php 保存ページを介して)。

ただし、それを返し、次を使用してシリアル化を解除すると:

$arr = unserialize($results['q35list']);
if(!$arr) $arr=array();
var_dump($arr);

それは配列ではありません!それは次のとおりです。

string(55) "Set[]=2&Set[]=1&Set[]=3&Set[]=4&Set[]=5&Set[]=6&Set[]=7"

木から木が見えないところまで来てしまった…

4

3 に答える 3

3

jQuery シリアライゼーションと PHP シリアライゼーションは、2 つの別個のものです。jQuery は CGI (GET または POST) を介してデータを送信できることに重点を置いており、PHP シリアライゼーションは構造化データを文字列に格納することに重点を置いています。

それらは交換可能ではありません。

同じプラットフォームでシリアライズとアンシリアライズを行う必要があります。そうしないと、機能しません。

于 2013-01-28T13:21:54.127 に答える
2

よくわかりませんが、parse_str()機能を使用できませんか

このような

parse_str($string, $array); 

$string は mysql からのデータで、$array はデータを取得するために使用できる配列です。

于 2013-01-28T13:19:35.653 に答える
0

問題をより簡単に修正する方法があるかもしれませんが、他に何も機能しない場合はexplode()、文字列を部分的に切り取り、配列を作成することもできます。

于 2013-01-28T13:23:52.670 に答える