我需要在一个弹出式窗口中嵌入一个表单,我创建了一个formType,一个控制器和一个TWIG视图,其中包含了整个页面和弹出式窗口。
我创建了一个formType,一个控制器和一个TWIG视图,其中包含了整个页面和弹出窗体。
我在弹出式中映射了我的表单,一切都显示得很好,但当我点击提交按钮时,什么都没有发生。似乎当嵌入到弹出式表单中时,无法检测到提交按钮。
这是我的表单。
namespace App\Form;
class MessageType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('text', TextareaType::class, [
'attr' =>[
'class'=>'with-border',
'cols'=> '10',
'placeholder'=> 'Message',
'name'=> 'textarea',
],
])
->add('save', SubmitType::class, [
'attr' =>['class'=>'button margin-top-35 full-width button-sliding-icon ripple-effect'],
])
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'data_class' => Message::class,
]);
}
}
这是控制器中与表单相关的部分。
namespace App\Controller;
class FreelancerprofileController extends AbstractController
{
/**
* @Route("/freelancer/profile/{id}", name="freelancerprofile",requirements={"id" = "\d+"})
*/
public function index($id, Request $request)
{
$message = new Message();
$form = $this->createForm(MessageType::class, $message);
if ($form->isSubmitted() && $form->isValid())
{
$user = $this->getUser();
$receiver = $freelancer->getUser();
$messagetext = $form['message']->getData();
$message->setUser($user);
$message->setReceiver($receiver);
$message->setText($messagetext);
$message->setCreationdate(new \DateTime('now'));
return $this->render('freelancer/profile.html.twig', array(
//'freelancers' => $freelancers,
));
}
return $this->render('freelancer/profile.html.twig', [
'message' => $form->createView(),
]);
}
}
这是TWIG视图中包含的模式。
<!-- Message Popup
================================================== -->
<div id="small-dialog" class="zoom-anim-dialog mfp-hide dialog-with-tabs">
<!--Tabs -->
<div class="sign-in-form">
<ul class="popup-tabs-nav">
<li><a href="#tab">Contact</a></li>
</ul>
<div class="popup-tabs-container">
<!-- Tab -->
<div class="popup-tab-content" id="tab">
<!-- Welcome Text -->
<div class="welcome-text">
<h3>Send message</h3>
</div>
{{ form_start(message) }}
<!-- Form -->
<form method="post">
{{ form_widget(message.text) }}
</form>
<!-- Button -->
{{ form_widget(message.save) }}
{{ form_end(message) }}
</div>
</div>
</div>
</div>
</div>
<!-- Message Popup / End -->
根据 文件 你只需要使用树枝标签。
{{ form_start(form, {'attr': {'novalidate': 'novalidate'}}) }}
{{ form_widget(form) }}
{{ form_end(form) }}
没有 form
标签