在表单OnChange中交换数字的顺序

时间:2016-05-16 10:37:09

标签: javascript php mysqli

这有点奇怪,但我很高兴从哪里开始,因为我已经做了一些搜索而没有返回任何结果。

我的数据库中有一个类别列表,其中cat_order列可以正确列出它们。这是一个可以编辑的基本编号系统。一些例子:

cat_order |  cat_name
   1           Union Rooms 
   2           Jesters
   3           Popworld
   4           Walkabout
   5           Two Trees
   6           Crash Manor

当向用户显示这些类别时,它们将使用cat_order列以ASC顺序显示。因此,这是一种非常简单,基本的订购方式。如果我换了51Two Trees会显示在Union Rooms位置,反之亦然。

在管理方面,我正在尝试创建一个系统来更改这些订购号。我选择了一个简单的表单方法:

<form action="" method="post" id="sort_cat" name="sort_cat">

<?
$sql5 = "SELECT * FROM `new_categories` WHERE `cat_up_lvl` = '$cat' ORDER BY `venue_closed` ASC, `cat_order` ASC";
$result5 = $conn->query($sql5);

          if ($result5->num_rows > 0) {
          // output data of each row
          while($row5 = $result5->fetch_assoc()) {
          $cat_id5 = $row5['cat_id'];
          $cat_name5 = $row5['cat_name'];
          $cat_short_code5 = $row5['short_code'];
          $cat_city5 = $row5['cat_city'];
          $cat_order5 = $row5['cat_order'];

?>        
<div class="form-group">
    <div class="input-group">
      <input type="hidden" id="cat_id[]" value="<? echo $cat_id5; ?>">    
      <input type="number" class="form-control" id="order[]" placeholder="Order..." value="<? echo $cat_order5; ?>">
      <div class="input-group-addon" style="width:80%;"><b><? echo $cat_name5; ?></b> (<? echo $cat_short_code5; ?>)</div>
    </div>
  </div>

<?
          }
     }
?>
</form>

我正在寻找一种方法(如果甚至可能)在我更改一个数字后交换表单中的数字。因此,如果在我的表单上我想用Jesters (2)更改Walkabout (4),我只能更改表单中的一个数字Jesters (4),系统会以某种方式实现 - &#34;好的,Walkabout曾经是4,Jesters曾经是2,现在Jesters已经变成了4,Walkabout应该是2&#34;。并以某种方式自动执行此处理?

这会使用JS还是可以用PHP完成,如何才能最好地解决这个问题?

  • 只是为了一个目标,这种方式比在数据库中错误地存在多个数字的问题,所以你不会得到1, 1, 1, 2, 3, 4等等......

1 个答案:

答案 0 :(得分:0)

我建议你在jqueryUI中使用可排序的插件。

https://jqueryui.com/sortable/

以下是如何与PHP一起使用

的示例

jQuery UI Sortable, then write order into a database