У меня есть несколько действий контроллера, таких как adminbedroomtypesort, adminbookingstatussort, communicationtypesort, countrysort, currencysort , durationsort, featuressort, floorsort, furnishedsort, includedbillssort
и один файл js.
Мой js-файл:
$(document).ready(function() {
var data = {};
$( "#sortable" ).sortable({
update: function(event, ui) {
var update = ui.item.index();
update = update+1;
data['update'] = update;
console.log('update sortorder: '+update);
},
start: function(event, ui) {
var start = ui.item.index();
start = start+1;
data['start'] = start;
console.log('start: ' +start);
},
stop: function (event, ui) {
$('#loader').show();
$.ajax({
type: 'POST',
url: Routing.generate('adminbedroomtypesort'),
contentType: 'application/x-www-form-urlencoded',
data: {data: data},
success: function(result,status,xhr){
var res = JSON.parse(result);
if(res){
$('#loader').hide();
}
},
error: function(xhr, status, error) {
console.log(status);
}
});
}
});
$( "#sortable" ).disableSelection();
});
Действие контроллера:
/**
* @Route("/bookingstatus/sort", name="adminbookingstatussort", options = { "expose" = true })
*/
public function sortbookingstatusAction(Request $request) {
if ($request->isXmlHttpRequest()) {
$em = $this->getDoctrine()->getManager();
//retrieve sort order from bedroomtypelistpage
$data = $request->request->get('data');
//Retrieve the start position and end position(updateorder) for the sorted field
$start = $data['start'];
$updateorder = empty($data['update']) ? NULL : $data['update'];
if(empty($updateorder)){
return new Response(json_encode('success'));
}
$bedroomtype = $em->getRepository('EpitaHousingBundle:Bookingstatus')->findOneBy(array('sortorder' => $start));
// flag -1 drag order is top to bottom
// flag 1 drag order is bottom to top
$flag = ($start < $updateorder) ? -1 : 1;
$btwelements = $this->getDoctrine()
->getRepository(Bookingstatus::class)
->findBedroom($start, $updateorder, $flag);
foreach ($btwelements as $betweenvalues) {
$order = $betweenvalues->getSortorder();
$betweenvalues->setSortorder($order + $flag);
}
$bedroomtype->setSortorder($updateorder);
$em->flush();
return new Response(json_encode('success'));
}
return new Response('Success');
}
как и несколько действий контроллера, здесь я выполнил одно действие контроллера для одного отдельного файла js, он работает нормально, но здесь я использую один и тот же файл js, многократно меняя только URL-адреса. Есть ли способ передать url: Routing.generate('adminbedroomtypesort'),
несколько URL-адресов в один файл js, соответствующие действия контроллера, помогите мне. Спасибо за заранее...