2012-04-17 2 views
1

나는 ID test_table행 목록에 따라 테이블의 행 순서를 변경하는 방법 id?

<table id="test_table"> </table> 

와 테이블이 있고 또는 서로 다른 ID를 가지고 있습니다.

I 행의 목록 주문한 '

["name","value","description"] 

같은 ID를 무엇을 (사용자가 새로운 질서 설정 한 즉시, 그게 내가 행의 목록을 작성하는 방법입니다 수 화면에 렌더링 테이블과 다른'ID를).

정렬 된 목록을 기반으로 해당 테이블에서 새 주문을 설정하는 방법은 무엇입니까? (설명 : 다른 두 개의 목록을 하나씩 가지고 있습니다. 사용자는 첫 번째 표에서 행을 끌어다 놓을 수 있으며 두 번째 표의 ID가 같아야합니다. 두 번째 표의 ID는 첫 번째 + 접두사 "미리보기"와 같은 ID입니다. 내가 첫 번째 테이블/드롭을 드래그하는 방법입니다.)

$("#cleanVert").tableDnD({ 
    onDragClass: "myDragClass", 
    onDrop: function(table, row) { 
     var rows = table.tBodies[0].rows; 
     var debugStr = "New Order: "; 
     var outStr = ""; 
     for (var i=0; i<rows.length; i++) { 
      debugStr += rows[i].id+" "; 
      outStr += rows[i].id; 
      if(i<(rows.length-1)){ 
       outStr+="," 
      } 
     } 
     $("#debugArea").html(debugStr); 
    }, 
    onDragStart: function(table, row) { 
     $("#debugArea").html("Started dragging row "+row.id); 
    } 
}); 
+0

JS ajax PHP 스크립트 호출 –

+1

사용자는 어떻게 목록을 재정렬 할 수 있습니까? 당신이 갖고있는 것에 대한 코드를 보여주고 우리가 더 잘 도와 줄 수 있도록 노력해야합니다. 우리는 당신을 위해 코드를 작성하지 않을 것입니다 –

+1

당신은 jQuery와 함께 사용할 수 있습니다 shortable – thecodeparadox

답변

1

나는 클라이언트 측 테이블 정렬 후 생각 적지가 온라인으로 제공, 당신이 잘 알고있는 자바 스크립트 라이브러리 무엇 달려있다. 나는 tablesorter이라는 jQuery 플러그인을 사용하기로 결정했으며 태그에 기반하여 귀하를위한 좋은 옵션이 될 것이라고 추측합니다.

단점은 클라이언트 측에만 해당되므로 사용자가 자바 스크립트를 사용하도록 설정하지 않으면 테이블을 정렬 할 수 없다는 것입니다. 중요한 문제는 아닙니다. 평범한 사용자는 항상 자바 스크립트를 사용할 수 있습니다.

다른 옵션은 서버 측 정렬을 구축하는 것입니다, 이것은 데이터베이스 쿼리에

ORDER BY "$selectedField" "$order" 

을 추가하는 등 쉽게 할 수 있습니다. 또한 Javascript 없이도 작동합니다.

요즘 많은 인기있는 웹 개발 프레임 워크가 이러한 종류의 기능을 제공합니다. 아직 발견하지 못했다면 프로그래밍 언어에 대한 몇 가지 옵션을 살펴 보시기 바랍니다.

1

당신이하려고하는 것처럼 보이는 jQuery의 모든 것을하고 싶다면, jQuery Sortable을 들여다 보겠다. 그러나 링크/버튼처럼 각 필드를 오름차순 또는 내림차순, 또는 같은 usernames 등으로, 그리고 그 서버 쪽을 유지 그럼 버튼/링크를 ?order_by=asc 또는 ?order_by=username&dir=asc 같은 것을 말할 URL에 하위 쿼리 자체를 다시로드하고 다음에 대한 검사를 실행하는 것이 좋습니다 것이 서버 쪽을 유지 페이지에서 해당 변수/하위 쿼리 ($ _GET [ 'order_by'])를 함수에 전달합니다.

$order_by = "ORDER BY " . $_GET['order_by'] . $_GET['dir']; 
$query = "SELECT * 
      FROM table 
      $order_by"; 
그런 다음 변수를 사용하여 어려움없이 메인 페이지로드에 대해이 같은 쿼리 (즉, 정렬되지 않은) 사용할 수

, 다음 쿼리 : 함수,이와 비슷한 쿼리를 수행 로드 된 $order_by으로 다시 실행하면 목록이 매개 변수별로 정렬됩니다.