0

我将一些已通过使用 jQuery 序列化的信息存储到 MySQL 数据库中:

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

这会将相关信息存储在数据库中(通过 .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 序列化是两个不同的东西。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 回答