如何在wordpress中保存jquery ui可排序的顺序

时间:2013-11-08 06:55:52

标签: jquery wordpress jquery-ui-sortable

我使用了jquery-ui-sortable,它的工作非常完美。但它没有保留他们的顺序,我怎么能保存它

任何一个帮助 这是我的代码

<?php
add_action('wp_enqueue_script','image_sort');       
function image_sort(){  
    wp_enqueue_script( 'jquery-ui-sortable' );  
    }
?>
<script type="text/javascript">
jQuery(document).ready( function($) {
   $('table#image_sort tbody').sortable();
});

</script>
<?php if(!empty($wp_logo_slider_images)) : ?>   
<table class="widefat fixed" cellspacing="0" id="image_sort">
    <thead>
        <tr>
            <th scope="col" class="column-slug">Image</th>
            <th scope="col">Image Links To</th>
            <th scope="col" class="column-slug">Actions</th>
        </tr>
    </thead>
         <tbody>
            <tr>
                <td>1</td>
                <td>2</td>
                <td>3</td>
             </tr>
    </tbody>
</table>

1 个答案:

答案 0 :(得分:3)

首先,您在文件中正确调用jQuery lib,并将值保存在wp_options

function image_sort(){  
wp_enqueue_script('jquery');
?>
<!--<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>-->
<?php 
wp_enqueue_script('jquery-ui-sortable');
?>
<script type="text/javascript">

jQuery(document).ready( function(e) {
   jQuery('#image_sort').sortable({
            items: '.list_item',
            opacity: 0.5,
            cursor: 'pointer',
            axis: 'y',
            update: function() {
                var ordr = jQuery(this).sortable('serialize') + '&action=list_update_order';
                jQuery.post(ajaxurl, ordr, function(response){
                    //alert(response);
                });
            }
      });
});

</script>
<?php
    }
    add_action('admin_head','image_sort');

function order_list(){
        global $wp_logo_slider_images;

        $list = $wp_logo_slider_images;
        $new_order = $_POST['list_item'];
        $new_list = array();

        foreach($new_order as $v){
            if(isset($list[$v])){
                $new_list[$v] = $list[$v];
            }
        }
        update_option('wp_logo_slider_images',$new_list);
    }
    add_action('wp_ajax_list_update_order','order_list');

<table class="widefat fixed" cellspacing="0" id="image_sort" style="width:100%; table-layout:inherit;">
     <tr id="list_item_<?php echo $image ?>" class="list_item">
         Your Values
     </tr>
</table>

希望你找到答案