2011-06-12 5 views
0

다음 기능을 코딩하는 데 문제가 있습니다. 나는 사용자가 레코드를 재정렬하고 display_order 값을 변경할 수 있기를 원한다. 나는 이것을 용이하게하기 위해 draggable 및 droppable의 Jquery UI를 사용하고있다.프런트 엔드에서 레코드 순서 변경

display_order 값의 간단한 교환이 어떻게 작동하는지 알 수 있습니다. 하지만 레코드의 표시 순서를 설정하고 이상적으로 다른 순서를 뒤섞어 표시 할 필요가 없도록해야합니다. 내가 어떻게 할 것인지에 대해 머리를 쓰지 않는 것 외에도 목록에있는 모든 값을 뒤섞어 쓰는 것이 어렵고 비효율적 인 것처럼 보입니다.

그래서 나는 이런 종류의 일이 일반적으로 어떻게 이루어져야하는지에 대한 다른 제안을합니다.

아마도 3.000과 같은 값을 사용하여 순서를 나타내면 레코드를 만들고 싶을 때 그 값은 3 - 0.001이므로 2.999이며 2와 3 사이의 값을 갖습니다. 그러나 볼 수 있습니다. 너무 많은 것들이 그 아이디어에 잘못되어 있으며 따르기 좋은 길처럼 보이지 않습니다.

입력 해 주셔서 감사합니다.

답변

0
  • max(sorting) + 1 항목을 재정렬 할 때, 새 항목이 끝에 추가됩니다

  • 전체 항목의 예상 수에 따라, 테이블, smallintmediumint 또는 int을 정렬 열을 추가 새로운 정렬 위치를 가져 와서 그에 따라 더 높은 정렬 항목을 변경하십시오.

    mysql_query('UPDATE yourTable set sorting = '.$yourNewposition.' where id='.$yourUniqueId .' LIMIT 1');

    mysql_query('UPDATE yourTable set sorting = sorting + 1 where sorting >= '.$yourNewposition.' AND id != '.$yourUniqueId);

+0

신난다! 그것이 내가 해결할 수없는이 부분이었다 그것을 위해 덕분에'+ 1 정렬 = 정렬 설정 위치를 정렬> = '. 나는 목록에있는 모든 항목에 대한 정렬 값을 변경해야 할 것이라고 생각 $ yourNewposition.'' . 그리고 목록이 동적이기 때문에 나는 그것을 할 필요가 얼마나 많이 있는지 모른다. –

+0

기꺼이 도와 드리겠습니다. – konsolenfreddy

관련 문제