我使用了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>
答案 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>
希望你找到答案