以形式保存序列化可排序

Posted

技术标签:

【中文标题】以形式保存序列化可排序【英文标题】:saving serialized sortable in form 【发布时间】:2015-04-23 23:51:10 【问题描述】:

我有一个简单的表单,它有 3 个文本输入、一个可排序的 li 列表和一个隐藏输入,可排序的输出将转到该隐藏输入。

  $(document).ready(function () 
    $('ul').sortable(
        axis: 'y',
        stop: function (event, ui) 
	   var data = $(this).sortable('serialize');
            document.getElementsByName("order").value = data;
	
    );
);
<link type="text/css" rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1/themes/smoothness/jquery-ui.css"/>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1/jquery-ui.min.js"></script>

<form>
    
    <ul id="sortable">
        <li id="item-1">Item 1</li>
        <li id="item-2">Item 2</li>
        <li id="item-3">Item 3</li>
    </ul>
    <input type="text" name="firstname" placeholder="first name">
        <br>
    <input type="text" name="lastname" placeholder="last name">
        <br>
    <input type="text" name="phone" placeholder="phone">
        <br>
    <input type="hidden" name="order" value="">
        
     <input type="submit" value="Submit">
        
</form>

我想做两件事:

1) 将序列化可排序的字符串输出转换为隐藏的“订单”输入的值。

2a) 使输出更易于使用(类似于 "1,2,3" 而不是 "item[]=1&item[]=2&item[]=3")

2b) 使用php将表单的数据以如下形式保存到mysql

有什么建议吗?

【问题讨论】:

【参考方案1】:

1)您可以订阅表单的提交事件,并使用函数首先将序列化的可排序对象保存到隐藏输入中。

2a) 我认为最好使用它,然后使用 php 将数组转换为您喜欢的其他格式。

2b) 在 Google 中搜索您会找到有关如何执行此操作的信息。

【讨论】:

以上是关于以形式保存序列化可排序的主要内容,如果未能解决你的问题,请参考以下文章

细看Java序列化机制

比较WP_Query中以序列化数组形式存储的meta_value

来讲讲怎样获取到url上所有参数并以对象形式保存,再讲讲JSON解析与序列化

使 numpy 数组 JSON 可序列化

数据结构拓扑排序序列

Serializable接口的作用;Externalizable自定义序列化和反序列化