У меня есть форма на модале с 2 кнопками типа submit. Таким образом, в зависимости от того, какая кнопка нажата, будет доступна одна и та же функция в сервисе, но с разными параметрами. Что я хочу сделать, так это держать модал открытым при нажатии на любую из кнопок.
public function createFormExport(Request $request) {
$form = $this->createFormBuilder()
//...
->add('btn1', SubmitType::class, array(
'label' => 'Button 1'
))
->add('btn2', SubmitType::class, array(
'label' => 'Button 2'
))
->getForm();
$form->handleRequest($request);
if ($form->get('btn1')->isClicked()) {
$this
->getService()
->function($form->getData(), "bt1");
} elseif ($form->get('btn2')->isClicked()) {
$this
->getService()
->function($form->getData(), "btn2");
}
return $form->createView();
}
Я получаю данные в функции сервиса без проблем, но я хочу предотвратить перезагрузку страницы при нажатии на любую кнопку.
Если для кнопок я использую ButtonType
вместо SubmitType
, функция isClicked()
, к сожалению, не распознается.
Есть ли способ проверить, какая кнопка нажата, если я использую ButtonType
, потому что, если я использую SubmitType
, мне нужно будет обнаружить нажатие кнопки в JS, чтобы предотвратить перезагрузку страницы, а затем сгенерировать маршрут в AJAX и прочитайте данные в форме и отправьте их обратно в мой контроллер. Это действительно усложняет вещи.