0

我正在编写一些教程。我已经四处张望了很长一段时间,似乎无法一针见血。到目前为止,这是我的代码。

指数

<?php       
$result = mysql_query("SELECT MAX(listid) AS listid FROM testtable");  
while($row = mysql_fetch_array($result))  
{    
for ($i=1; $i<=(int)$row['listid']; $i++) {?>
<div class="heading" >List <?php echo $i; ?></div>
<ul class="connectedSortable sortable">
  <?php
$item = "SELECT * FROM testtable WHERE listid='".$i."' ORDER BY posid ASC";
$list = mysql_query($item); $x = 1; 
while($row2 = mysql_fetch_array($list, MYSQL_ASSOC)){
    ?>
  <li class="ui-state-default" id="recordsArray_<?php echo $row2['linkid']; ?>">
  <?php echo $row2['linkname']; ?></li>
  <?php $x++;
}
?>
</ul>
<?php 
}} 
?>

Javascript

$(document).ready(function(){
  $(function () {
      $(".sortable").sortable({
          connectWith: ".connectedSortable",
          distance: 5,
          zIndex: 0,
          opacity: 0.6,
          cursor: 'move',
          update: function() {
            var order = $(this).sortable("serialize")
+ '&action=updateRecordsListings'; 
            $.post("updateDB.php", order)}
      }).disableSelection();
  });
});

和 updateDB.php 代码

    <?php 
require("connect2.php");

$action = mysql_real_escape_string($_POST['action']); 
$updateRecordsArray = $_POST['recordsArray'];

if ($action == "updateRecordsListings"){

    $posidCounter = 1;
    foreach ($updateRecordsArray as $recordIDValue) {

        $query = "UPDATE testtable SET posid = ".$posidCounter."
        WHERE linkid=".$recordIDValue;
        mysql_query($query) or die('Error, insert query failed');
        $posidCounter = $posidCounter + 1;  
    }
}
?>

现在一切似乎都很好。但我想要实现的是,当我将列表项移动到连接列表时,更新数据库以反映该项目在新列表中的位置。目前它只更新其在其原始列表中的位置。

我对这一切都很陌生,所以任何帮助都会很大!提前致谢。

我的桌子看起来像这样:

+----------+----------+---------+--------+
| linkname |  linkid  |  posid  | listid |
+----------+----------+---------+--------+
|     1    |     1    |    2    |    1   |
|     1    |     2    |    1    |    1   |
|     1    |     3    |    1    |    2   | 
|     1    |     4    |    2    |    2   |
+----------+----------+---------+--------+
4

0 回答 0