Symfony isClicked()用于ButtonType符号
我在模态上有一个表单,有两个类型为submit的按钮。因此,根据单击的按钮,将使用不同的参数访问服务中的相同功能。我想做的是在单击任何按钮时保持模式打开Symfony isClicked()用于ButtonType符号,symfony,Symfony,我在模态上有一个表单,有两个类型为submit的按钮。因此,根据单击的按钮,将使用不同的参数访问服务中的相同功能。我想做的是在单击任何按钮时保持模式打开 public function createFormExport(Request $request) { $form = $this->createFormBuilder() //... ->add('btn1', SubmitType::class, array( '
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中生成路由,读取表单中的数据并将其发送回控制器。这真的让事情复杂化了。也许这会有帮助
//Controller
//return of your method called by the route
(...)
return new JsonResponse(['someData' => '123456789']);
Jquery:
$("#btn1, #btn2").click(function () {
var url = "";
var formSerialize = $("#formAjax").serialize();
// #formAjax is the id of your <form>
$.post(url, formSerialize, function(response) {
$('.anyClass').html(response.someData);
}, 'JSON')
.fail(function(xhr, status, error) {
//do something
});
$(“#btn1,#btn2”)。单击(函数(){
var url=“”;
var formSerialize=$(“#formAjax”).serialize();
//#formAjax是您的
$.post(url、formSerialize、函数(响应){
$('.anyClass').html(response.someData);
}(“JSON”)
.失败(功能(xhr、状态、错误){
//做点什么
});