#jquery #ajax #symfony #drag-and-drop
Вопрос:
Я использую Symfony, и я сделал перетаскивание с помощью jquery, а затем выполнил функцию в ajax, чтобы сохранить и отправить изменения в мою базу данных. Однако после первой модификации я получаю фатальную ошибку: «Вызов функции-члена setPosition () на null». Даже несмотря на то, что изменения применяются. Со второй модификацией ошибки нет. Кто-нибудь знает, почему?
Спасибо
Это функция в моем контроллере:
/**
*
* @param Request $request
* @return JsonResponse $data
* @Route("/ajax_position_carousel", name="ajax_position_carousel")
*/
public function ajax_position_carousel(Request $request, VitrineAccueilRepository $repoVitrineAccueil, EntityManagerInterface $manager)
{
$arrayPositions = $request->request->get('positions');
foreach($arrayPositions as $position)
{
$carousel = $repoVitrineAccueil->find($position[0]);
$carousel->setPosition($position[1]);
$manager->persist($carousel);
$manager->flush();
}
$data = true;
// $data = $this->jsonStock($stockTab);
return new Response($data);
}
и сценарий:
<script type="text/javascript">
$(document).ready(function() {
$('table tbody').sortable({
update: function (event, ui){
$(this).children().each(function (index) {
if ($(this).attr('data-position') != (index 1)) {
$(this).attr('data-position', (index 1)).addClass('updated');
}
});
saveNewPositions();
}
});
});
function saveNewPositions() {
var positions =[];
$('.updated').each(function (){
positions.push([$(this).attr('data-index'), $(this).attr('data-position')]);
$(this).removeClass('updated');
});
console.log(positions);
var url = "{{ path('ajax_position_carousel') }}";
var data = {
"positions" : positions
};
console.log(data);
$.ajax({
method: 'post',
dataType: 'json',
url: url,
data: data,
success: function (response) {
var $retour = response;
console.log($retour);
},
error: function () {
alert("erreur");
}
})
}
</script>