2012-02-04 98 views
0

作为JQuery的新手,并试图了解关于发布数据的不同方式的所有帖子,我仍然对为什么我的功能无法正常工作感到失望。任何帮助将受到欢迎,因为我花了好几天的时间试图让这个工作。通过ajax和JQuery发送数据到php脚本

我有一个排序列表UL:

  <ul class="gallery" id ="gallery"> 
       <li id="item_59"><a href="/images/pages/apartamentos/155/image115_7.jpg" title=""><img src="/images/pages/apartamentos/155/image115_7.jpg" alt="" /></a></li> 
       <li id="item_61"><a href="/images/pages/apartamentos/155/image115_6.jpg" title=""><img src="/images/pages/apartamentos/155/image115_6.jpg" alt="" /></a></li> 
       <li id="item_62"><a href="/images/pages/apartamentos/155/image115_3.jpg" title=""><img src="/images/pages/apartamentos/155/image115_3.jpg" alt="" /></a></li> 
       <li id="item_63"><a href="/images/pages/apartamentos/155/image115_5.jpg" title=""><img src="/images/pages/apartamentos/155/image115_5.jpg" alt="" /></a></li> 
       <li id="item_64"><a href="/images/pages/apartamentos/155/image115_2.jpg" title=""><img src="/images/pages/apartamentos/155/image115_2.jpg" alt="" /></a></li> 
       <li id="item_65"><a href="/images/pages/apartamentos/155/image115_1.jpg" title=""><img src="/images/pages/apartamentos/155/image115_1.jpg" alt="" /></a></li> 
       <li id="item_66"><a href="/images/pages/apartamentos/155/image115_4.jpg" title=""><img src="/images/pages/apartamentos/155/image115_4.jpg" alt="" /></a></li> 
      </ul> 

然后在相同的文档我有这个jQuery:

<script type="text/javascript"> 

$(document).ready(function() { 


     $(function(){ 
     $("#gallery").sortable({stop:function(event, ui) { 

     $.ajax({ 
     type: "GET", 
     url: "image_order.php", 
     data: $("#gallery").sortable("serialize"), 

        success: function(data) { 
         if (data) { 
          $('#msg').html('Success'); 
         } 
        }, 
        error: function() { 
         $('#msg').html('Failed'); 
        } 

       }) 
       } 
      }); 

    } 
} 


</script> 

然后,我有一个image_order.php:

foreach ($_GET['item'] as $position => $item) { 
$query_edit = "UPDATE `image_order` SET `position` = $position WHERE `id` = $item"; 
mysql_query($query_edit, $ith) or die(mysql_error()); 
$sql[] = "UPDATE `image_order` SET `position` = $position WHERE `id` = $item"; 
} 

echo json_encode($sql); 

当你手动输入 image_order.php?item [] = 1 & item [] = 2 &项目[] = 3 &项目[] = 4个 回报:

["UPDATE `image_order` SET `position` = 0 WHERE `id` = 1","UPDATE `image_order` SET `position` = 1 WHERE `id` = 2","UPDATE `image_order` SET `position` = 2 WHERE `id` = 3","UPDATE `image_order` SET `position` = 3 WHERE `id` = 4"] 

我有一个类似json的功能,此页面上的作品,我看到被称为在控制台的URL,但没有这一项。

我也试过$( “ul.gallery”)排序({停止:函数(事件,UI){...但是,这并不工作

帮助将是巨大的。 ..please ...

+0

是放在同一目录下的HTML代码image_order.php – 2012-02-04 16:28:20

+0

是这个原因,该功能是在一个木瓦cript文件但我粘贴在html中以确保 – Peter 2012-02-04 16:32:30

+0

$(document).ready和$(function)执行完全相同的功能,因此请删除其中一个。我不确定这会不会解决我们的问题。 – 2012-02-04 16:45:08

回答

0

我不得不把sortstop事件(RTM)绑定:

http://jqueryui.com/demos/sortable/#event-stop

$("ul.gallery").bind("sortstop", function(event, ui) { 
     $.ajax({ 
     type: "GET", 
     url: "image_order.php", 
     data: $("ul.gallery").sortable("serialize"), 

        success: function(data) { 
         if (data) { 
          $('#msg').html('Success'); 
         } 
        }, 
        error: function() { 
         $('#msg').html('Failed'); 
        } 

       }) 

      });