2012-06-20 2 views
0

저는 webdeveloper입니다. 지금은 매우 성가 시며 다음과 같은 경우에는 매우 어려운 방법이라고 생각합니다.dabatase에서 정렬 순서를 저장합니다.

나는 갤러리를 만들고있어 사용자에게 이미지 정렬/정렬 방법을 선택하고 싶습니다. 그래서 그는 그들을 보여줄 순서를 바꿀 수 있습니다 (http://jqueryui.com/demos/sortable/). 하지만 다음에해야 할 일; 데이터베이스에서이 주문을 안전하게하는 방법은 무엇입니까? 나는 ID와 함께 여분의 테이블을 가지고 있는데, 웹 사이트에 순서대로 표시해야합니다. 어려운 생각으로가는 길.

누가 더 나은 방법을 알고 있습니까? 이것은 aswel을 유지하기가 어렵습니다. 나는 codeigniter와 jquery로 작업하고있다.

답변

1

것이다

<li class="left" id="someId">   
<a href="#" > 
<img src="image path here" alt="error" id="image_id_here" class="img_thumb"/> 
</a> 
</li> 

기능 핸들러 기능

<a href="#" onclick="change_order()" class="btn_1">Save Order</a> 

(모든 이미지가 이동합니다 때라는 것이다) Image_Order
만들기 이미지 목록에 대한 귀하의 데이터베이스 테이블에 하나 개의 추가 필드 [photo_ord] 추가 아약스 전화 요청 이미지 주문

function change_order() 
{ 
    var urlst=""; 
    var co=1; 
    $('.img_thumb').each(function() 
    { 
     urlst=urlst+this.id+'#'+co+'*'; 
     co++; 
    }); 
    $.ajax(
    { 
     type:"POST", 
     url:"xhr_change_image_order.php", 
     data:"orader="+urlst, 
     success:function(data) 
     { 
      if(data=="changed") 
       alert("Image order changed.");    
     }, 
     error:function() 
     { 
      alert('error occure'); 
     } 
    }); 
} 

파일 : xhr_change_image_order.php (업데이트됩니다 데이터베이스) 그 후

<?php  
$url = $_POST['orader']; 
$photo_arr = explode("*", $url); 
foreach ($photo_arr as $k => $ph) { 
    if (strlen($ph) > 1) 
    { 
      // Update Query 
      // $arr[0] will contain image id 
      // $arr[1] will contain image order    
      UPDATE `photo` SET `photo_ord` = $arr[1] WHERE `photo_id` = $arr[0]; 
    } 
} 
echo "changed"; 
?> 

때 갤러리 간단히 ORDER BY 절을 사용하여 데이터를 가져 만들

SELECT * FROM photo ORDER BY photo_ord asc or DESC 
관련 문제