仅当刀片中的项目不在视图中时才显示它

时间:2018-01-15 12:01:14

标签: jquery laravel eloquent blade laravel-blade

我正在尝试从数据库中获取一个项目,只显示它在视图中是否已经存在于其他地方。

我现在拥有的是,我将数据库中的项目放入具有可排序列表的视图中,以便可以拖动订单。然后对列表进行排序,并将订单保存为json。在store方法中,项目附加到相应的json数据,以便可以将其返回到同一视图以供显示。

问题是现在项目以正确的顺序显示,但它也会显示原始未分类的项目,每次保存订单时都会在顶部添加相同的项目。

我是如何解决这个问题的,或者是否有更好的方法?

<form id="serializeForm" action="{{ route('storeConcept', $id) }}" method="post">
{{ csrf_field() }}
  <input id="serialize_output2" type="text" class="form-control" name="serialize">
  <button id="createConceptButton" type="submit" class="btn btn-default">Save order</button>
</form>

<ol class='sortableTheme'>
  <!-- Get all items from storage for sorting-->
    @isset($items)
      @foreach($items as $item)
        <li data-id="{{$item->id}}" data-name="{{$item->name}}" data-type="item">
         data
        </li>
      @endforeach
    @endisset

    <!-- Get item order from controller when save button is clicked-->
    @isset($json)
      @foreach($json as $key => $sortable)
        <li data-id="{{$sortable->id}}" data-name="{{$sortable->name}}" data-type="item">
          data
        </li>
      @endforeach
    @endisset
</ol>

编辑:从我的编辑视图添加代码

1 个答案:

答案 0 :(得分:0)

我修复了它(更像是一种解决方法),添加了一个额外的ol,只有在我加载保存的项目时才可以拖动。比那些可以拖入保存位置的ol。

<ol class='sortableTheme'>
<!-- Get item order from controller when save button is clicked-->
  @isset($json)
    @foreach($json as $key => $sortable)
      <li data-id="{{$sortable->id}}" data-name="{{$sortable->name}}" data-type="item">
      data
      </li>
    @endforeach
  @endisset
</ol>

<ol class="draggable>
   <!-- Get all items from storage for sorting-->
   @isset($items)
   @foreach($items as $item)
     <li data-id="{{$item->id}}" data-name="{{$item->name}}" data-type="item">
      data
      </li>
   @endforeach
 @endisset
</ol>