2015-08-07 3 views
0

Я создаю вложенный список с данными из базы данных. В этом списке я использую эффект JQuery UI Drag. Что мне нужно сделать, когда перетащить, он обновит базу данных.Ajax on JQuery drag event

Список coints имени профессора и его удостоверения, он имеет в подсписком с его классами, как:

Джон учит математику & физики, Дуэйн преподает английский язык.

Джон
* Физика
* Math

Дуэйн
* Английский

Скажем, я хочу, чтобы дать класс Math для Дуэйна. Поэтому я перетащу Math из Джона и перетащите его в под-список Dwayne. Он работает нормально.
То, что я не могу сделать, это сделать обновление базы данных, потому что Джон больше не преподает математику, а Джон собирается научить его. Поэтому мне нужно сделать обновление там или удалить + вставить.

Obs: Я использую Laravel

Вот мой код:

@extends('app') 

@section('assets') 
    <script type="text/javascript" src="{{ URL::to('/js/jquery.mjs.nestedSortable.js') }}"></script> 
@stop 

@section('content') 
    <ol> 
     @foreach($professores as $prof) 
      <li data-id=" {{ $prof->id }}"> 
       {{ $prof->nome }} 
       <ol class="list-disc"> 
        @foreach($prof->disc as $disc) 
         <li data-id="{{ $disc->id }}">{{ $disc->nome }}</li> 
        @endforeach 
       </ol> 
      </li> 
     @endforeach 
    </ol> 

    <script type="text/javascript"> 
     $(function(){ 
      var old_teacher; 

      $('.list-disc').sortable({ 
       connectWith: '.list-disc', 
       start: function (event, ui){ 
        old_teacher = ui.item.parent().parent().attr('data-id'); 
       }, 
       stop: function (event, ui){ 
        $.ajax({ 
         type: "POST", 
         url: '{{ URL::to("/professor") }}', 
         data: {disc: ui.item.attr('data-id'), professor: ui.item.parent().parent().attr('data-id'), old: old_teacher}, 
         success: function(data){ 
          console.log(data); 
         } 
        }); 
       } 
      }); 
     }) 
    </script> 

@stop 

С помощью этого кода в настоящее время, когда я падаю деталь я получаю:

Internal Server Error (500)

UPDATE
Маршрут Файл:

Route::post('professor', [ 
    'uses' => '[email protected]' 
    ]); 

Контроллер файла:

public function postProfessorList() 
{ 
    Professor::submit(Input::post('disciplina'), input::post('professor'), input::post('old')); 
} 

файла журнала: Обновление

local.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Call to undefined method Illuminate\Http\Request::post()' in F:\PathToProject\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:210

ответ

1

Внутренняя ошибка сервера (500) означает, что что-то не так с вашей стороны сервера (Laravel) кода.

Можете ли вы предоставить нам код, который используется в POST:/Professor?

EDIT

Вы можете проверить свои журналы в приложении/хранении или хранении/(в зависимости от версии Laravel). Они должны дать вам лучшее описание ошибки, которая возникает.

Кроме того, вы должны заменить Input::post('...') на Input::get('...'). Laravel автоматически выполняет переменные $ _GET и $ _POST.

EDIT 2 Ошибка, возникающая из-за защиты CSRF от Laravels. Вам нужно будет установить маркер CSRF в вашем запросе Ajax подобное:

data: {disc: ....., _token: '{{csrf_token()}}' }

+0

Просто обновленный файл маршрута и модель. Если бы вы могли, пожалуйста, протянуть мне руки ...Благодаря ! – PlayHardGoPro

+1

Хорошо, не думайте, что есть метод Input :: post(). Вы захотите изменить Input :: post на Input :: get, это должно вернуть вам правильные значения. Вы также можете проверить журналы laravel, которые вы можете найти в приложении/хранилище (по крайней мере, если вы используете Laravel 4) - они должны дать вам лучшее описание возникшей ошибки. –

+0

Спасибо, человек! На самом деле я на самом деле в этой области. Я обновлю информацию, которую я нашел в файле журнала. – PlayHardGoPro