0

我有一个包含“位置”字段的类别表。结果将按此字段排序。我希望能够为新行选择一个位置(最后一个除外)。

基本上,表单有一个字段让用户选择“之前”或“之后”,然后按位置列出所有类别。提交表单后,它应该根据选择更新表单。例如,如果现有 7 行并且用户选择“Before 5”,它应该给新行的位置为 5,然后更新之后的每一行(包括之前位置为 5 的行)。如果选择“After 5”,则新行的位置将为 6,之前为 6 和 7 的行将更新为 7 和 8。

有人有想法么?

PS:我在 CodeIgniter 中这样做(如果你不知道的话),但我很确定逻辑将基本相同。

if(count($this->info) > 0)
{       
     if($this->info['place'] == 0)
     {            
          $new_cat_position = $this->info['where'];       
     }
     else
     {       
          $new_cat_position = $this->info['where'] + 1;
     }
     $data = array(
            'title' => $this->info['title'],
            'collapsible' => $this->info['collapsible'],
            'position' => $new_cat_position
        );
     if($this->db->insert('forum_parents', $data))
     {
          if($this->info['place'] == 0)
          {
              $this->db->where('position > ', $new_cat_position + 1);
          }
          else
          {
              $this->db->where('position > ', $new_cat_position);
          }
          if(!$this->db->update('forum_parents', $data))
          {
              $this->error = "The category was created, however, the positions of the other categories were not updated correctly... ".$this->db->_error_message();
          }
     }
     else
     {
          $this->error = "An unknown system error occurred while processing your request.  Please try again later... ".$this->db->_error_message();
     }
}
4

1 回答 1

0

尝试使用数据表。它会帮助你。根据您的要求,尝试行重新排序功能。

链接在这里 :

 http://code.google.com/p/jquery-datatables-row-reordering/wiki/Index

这是工作示例:

 http://live.datatables.net/onigip/2

一旦能够进行 Roe-Reordering,您就可以使用一些逻辑更新数据库中的记录。

希望这有帮助。

于 2013-06-19T13:36:22.363 回答