0

問題は、シリアル化を通過するID番号を取得していないことだと思いますか? 私がphpから得ている応答は次のようになります:

Array 
( 
    [sort1]=> menu[]=1&menu[]=2&menu2[]=3
    [sort2]=> menu2[]=4
)

メニュー[0]、メニュー[1]などのように、各メニュー項目に番号を付けるべきではありませんか?

以下は私のコードです..

$(function() 
{
    $("#sortable1, #sortable2").sortable(
    {
    connectWith: '.connectedSortable',
    update : function () 
    { 
        $.ajax(
        {
            type: "POST",
            url: "sort_menu.php",
            data: 
            {
                sort1:$("#sortable1").sortable('serialize'),
                sort2:$("#sortable2").sortable('serialize')
            },
            error: function(res)
            {
            alert("theres an error "+ res);
            },
            success: function(res)
            {
            alert("theres a response "+ res);
            }
        });
    } 
    });
});

PHP:

    $result = mysql_query("SELECT * FROM menu WHERE crew='1' ORDER BY sort ASC") or die(mysql_error());
while($row = mysql_fetch_array($result)) {
echo "<li id=\"menu_".$row['id']."\">".$row['title']."</li>\n";
}

および ajax 情報を受け取るフォーム

print_r($_POST);

$menu = $_REQUEST['sort1'];
for ($i = 0; $i < count($menu); $i++) {
mysql_query("UPDATE menu SET sort=" . $i . ", list='1' WHERE id='" . $menu[$i] . "'") or die(mysql_error());
}
4

0 に答える 0