在AJAX发送之后,Array不再是数组

时间:2012-02-17 23:01:07

标签: ajax jquery-ui jquery

我使用jQuery UI可排序插件,但我没有成功使用AJAX发送“order”var(数组)。在ajax发送“order”之后不再是一个数组了。我想只为ajax发送解决方案。

$("#list-cat").sortable({ 
    placeholder: 'highlight', 
    update: function() {  
    var order = $('#list-cat').sortable('serialize'); 

    $.ajax({
            dataType: 'json',               
            type: "POST",
            url: "my_url.php", 
            data: { action: "edit_cat_order", id_member: "<?php echo $id_member; ?>", id_page: "<?php echo $id_page; ?>", order: order },
            success: function(data){
                    if (data.a == true){    
                        $.colorbox({ html: data.b });                                       
                    }          
            },
            error:function (xhr, ajaxOptions, thrownError){
                        alert(xhr.responseText);
            }                       
        }); 

        }
 });

在“my_url.php”中,foreach循环无法将$ _POST ['order']识别为数组:“为foreach()提供的参数无效...”。我认为问题在于“数据”行,因为$ _POST ['order']在我使用时是一个数组:

$.post("my_url.php", order);

1 个答案:

答案 0 :(得分:0)

你可以尝试

$.post("imy_url.php", {order:order});

修改

您可以使用$.makeArray

$.ajax({
        dataType: 'json',               
        type: "POST",
        url: "my_url.php", 
        data: { action: "edit_cat_order", id_member: "<?php echo $id_member; ?>", id_page: "<?php echo $id_page; ?>", order: $.makeArray(order)},
        success: function(data){
                if (data.a == true){    
                    $.colorbox({ html: data.b });                                       
                }          
        },