jquery可排序传递数组到php

时间:2015-02-25 20:25:31

标签: php jquery ajax

我有一个jQuery可排序列表。最终我想要的是一个简单的php列表ID列表。我试图获取数组中的id和位置并将其添加到数据库中。我希望用户能够根据需要更改列表的顺序,当他们对订单感到满意时,单击按钮进行提交。

我见过很多可排序列表的例子,每次切换项目位置时都会更新,但这不是我想要的。

这是简化的。 id将使用php动态生成。

<body>
    <form>
        <ul id="sortable-1">
            <li id="order1">Item 1</li>
            <li id="order2">Item 2</li>
            <li id="order3">Item 3</li>
            <li id="order4">Item 4</li>
            <li id="order5">Item 5</li>
        </ul>
        <input type="button" value="Submit" onclick="go">
    </form>
</body>

jQuery将使列表可排序,并且每次订单更改时也会发布,而不是我想要的。我需要一个名为go with ajax的独立函数。另外,.sortable('toArray').toString()是我想要的(&#34;序列化&#34;)?它似乎是一个简单的id值数组。

$(function(){
    $("#sortable-1").sortable({
        update: function(event, ui){
            var operationOrder = $(this).sortable('toArray').toString();
            $ajax({
                data: operationOrder,
                type: 'POST',
                url: 'order.php'
            });
        }
    });
});         

php,它将包含一组id值:

$order = array();
$string = $_POST['data'];
$order = explode(",", $string);

感谢您的帮助。对于有经验的程序员来说,这可能过于简单,但我已经做了好几天......

1 个答案:

答案 0 :(得分:0)

要使用$_POST['data']接收数据数组,您需要将数组作为键data的值发送。另请注意,您不必对阵列进行字符串化。 jQuery将为您正确编码。

$ajax({
    data:{data: operationOrder},// don't need to stringify this array
    type: 'POST',
    url: 'order.php'
});

现在要验证,了解如何在浏览器控制台网络选项卡中检查ajax请求,您将看到确切的发送内容。浏览器控制台(F12)总是在调试ajax时启动的地方