2012-07-02 3 views
0

DB에서 이미지를 정렬하려면 jQuery sortable()을 사용하고 있습니다. HTML은 다음과 같습니다.jQuery sortable - PHP

<h2>Revision 1</h2> 

<ul class='sortable'> 
<li class='sortPhotos' id='item_249745' > 
    <img src="../data/gallery/13387/images/album/1650519801.jpg"/> 
    <p>1650519801.jpg</p> 
</li> 
<li class='sortPhotos' id='item_249744' > 
    <img src="../data/gallery/13387/images/album/704633205.jpg"/> 
    <p>704633205.jpg</p> 
</li> 
</ul> 

<h3>Revision 2</h3> 

<ul class='sortable'> 
<li class='sortPhotos' id='item_518811' > 
    <img src="../data/gallery/13387/images/album/001.jpg"/> 
    <p>001.jpg</p> 
</li> 
<li class='sortPhotos' id='item_518812' > 
    <img src="../data/gallery/13387/images/album/003.jpg"/> 
    <p>003.jpg</p> 
</li 
</ul> 

JS

<script> $(".sortable").sortable({stop:function(i) { $.ajax({ type: "GET", url: "../albumUploader/queries/sort.php", data: $(".sortable").sortable("serialize") }); }, opacity:1.0 }); </script> 

그리고 마지막 SQL

foreach($_GET['item'] as $key=>$value) { 

    mysql_query(" UPDATE galleryimage 
        SET sort = '{$key}' 
        WHERE id = '{$value}' 
        "); 
} 

상기 예에 문제 - 제 개정 실제로 정렬되는 유일한 수요일 수정이며 DB에. 다른 개정판은 그렇지 않습니다. Chrome 웹 개발자 확장 프로그램의 네트워크 모니터링에서 두 목록 모두 DB로 전송되지만 두 번째 목록은 쓰기가 아닙니다. 이것에 대한 아이디어가 있습니까?

+0

- 그것은 첫 번째와 같은 .sortable하지 인식되어 정렬 보인다 이것은 $(this)에서 데이터를 보내는 대신 $(".sortable")에서 수행 할 수 클래스 – Bungdaddy

+0

대기 - 두리스트가 모두 PHP 코드로 보내지 는가 아닌가? 귀하의 대답은 그렇다고 암시하는 것처럼 보이지만 귀하의 의견은 아니오를 암시하는 것처럼 보입니다. – Brilliand

답변

0

각 정렬 할 수있는 고유 한 ID가 있어야합니다. 해결 방법 :

ul id='sortable_" . $count ."' 
$count++; 

$(".revisionNum").each(
     function(e) { 
     num = e + 1; 
     $("#sortable_" + num).sortable(
      {stop:function(i) { 
       serial = $("#sortable_" + num).sortable("serialize"); 
       $.ajax({ 
        type: "GET", 
        url: "../albumUploader/queries/sort.php", 
        data: serial 
       }); 
      }, 
      opacity:1.0 
     });  
    }); 
0

한 가지 해결책은 한 번에 하나의 목록 만 서버로 보내는 것입니다. 나는 각 UL에 고유 ID를 부여하는 방법을 알아낼 필요가

$(".sortable").sortable({stop:function(i) { 
     $.ajax({ 
      type: "GET", 
      url: "../albumUploader/queries/sort.php", 
      data: $(this).sortable("serialize") 
     }); 
    }, 
    opacity:1.0 
}); 
+0

jQuery 이벤트 전반에 걸쳐 이런 종류의 표준이 있지만 실제로이 특정 플러그인으로 테스트하지는 못했습니다. – Brilliand