HTML 테이블과 함께 정렬 가능한 jQuery UI 사용


80

데이터베이스의 일부 데이터를 HTML 테이블로 출력하고 사용자가 테이블 행을 재정렬 할 수 있기를 원합니다. 이를 위해 jQuery UI 정렬 가능을 사용했습니다.

<script>
    $(function() {
        $( "#sortable" ).sortable();
        $( "#sortable" ).disableSelection();
    });
    </script>
<?php 
 while($row = mysql_fetch_assoc($co_authors)) {
                    echo "<tr id='sortable'><td>{$row['author_email']}</td>
                         <td>{$row['coauthor_level']}</td>";
                         <td><button class='remove' id='remove' name='remove' email="<?php echo $row['author_email'] ?>"
                            paper="<?php echo $row['paper_id'] ?>">Remove</button></td>
                         </tr>";
                }
?>

문제는 내가 표 를 끌 tr때만 td끌린다는 것입니다. 또한 가장 중요한 것은 첫 번째 행만 드래그 할 수 있다는 것입니다. 효과가 다른 행에는 적용되지 않습니다. 어떻게 해결할 수 있습니까?


4
id속성은 문서 내에서 고유해야합니다. 코드가 동일한 id( sortable)으로 여러 요소를 생성하고 있습니다. class대신 a 를 사용해보십시오 .
Frédéric Hamidi

그것의 가치가 무엇인지를 들어 - td와이야 contenteditable속성을 자신의 행이 방법을 사용하여 정렬 할 수있는 경우 편집 될 것 같지 않습니다. 그냥 참고로.
jg2703

답변:


195

당신은 호출 할 수 있습니다 sortable<tbody>대신 개별 행에.

<table>
    <tbody>
        <tr> 
            <td>1</td>
            <td>2</td>
        </tr>
        <tr>
            <td>3</td>
            <td>4</td> 
        </tr>
        <tr>
            <td>5</td>
            <td>6</td>
        </tr>  
    </tbody>    
</table><script>
    $('tbody').sortable();
</script> 


이것은 이제 잘 작동하고 전체 tr은 드래그 할 수 있지만 새로운 문제는 tr 위치가 변경되지 않는다는 것입니다. 데이터베이스에서 데이터를 파생하고 그 순서대로 나와야하므로 위치를 변경할 수 있습니까? 데이터베이스에서도?
Samer El Gendy

예, 정렬 된 위치를 유지하려면 해당 정보를 어딘가에 유지해야합니다.
TJ VanToll

3
감사합니다 !! 전체 디자인을 다시해야 할까봐 무서웠고 한 시간 밖에 걸리지 않았습니다. 감사합니다!
NaturalBornCamper 2014

5
대신에 게시 user236766 : 마지막 변경할 수 있습니다 <tbody></tbody>)
NathanOliver

내가 왜 tbody 요소가 아닌 테이블에서 sortable이라고 부르기로 결정했는지 모르겠습니다. 감사합니다!
ksudu94
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.