Ajax на событие перетаскивания JQuery

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

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

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

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

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

Допустим, я хочу дать урок математики Дуэйну. Поэтому я перетащу Матха из Джона и добавлю его в подсписок Дуэйна. Работает нормально.
Что я не могу сделать, так это сделать обновление базы данных, потому что Джон больше не учит математике, а Джон собирается преподавать его. Поэтому мне нужно сделать там обновление или удалить + вставить.

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

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

Внутренняя ошибка сервера (500)

ОБНОВИТЬ
Файл маршрута:

Route::post('professor', [
'uses' => 'ProfessorController@postProfessorList'
]);

Файл контроллера:

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

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

local.ERROR: исключение ‘Symfony \ Component \ Debug \ Exception \ FatalErrorException’ с сообщением ‘Вызов неопределенного метода Illuminate \ Http \ Request :: post ()’ в F: \ PathToProject \ vendor \ laravel \ framework \ src \ Illuminate \ Поддержка \ Фасады \ Facade.php: 210

0

Решение

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

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

РЕДАКТИРОВАТЬ

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

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

РЕДАКТИРОВАТЬ 2
Полученная ошибка связана с защитой CSRF от Laravels.
Вам нужно будет установить токен csrf в вашем ajax-запросе так:

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

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]