У меня очень простая форма, созданная с помощью createFormBuilder, предоставляющая только одно простое текстовое поле (к форме не добавляется сущность).Symfony Form reset после отправки
При отправке формы я делаю некоторую логику, а затем отменю форму и форму данных, как предложено во многих сообщениях в этом разделе, если вы хотите, чтобы форма была сброшена после отправки.
Существует несколько дополнительных действий с помощью простых ajax-запросов, которые в основном инициируют некоторые элементы пользовательского интерфейса - не касаясь самой формы и не перезагружая страницу.
Все работает отлично, за исключением того, что форма, по-видимому, просто не хочет сбрасываться - это означает: всякий раз, когда нажата кнопка перезагрузки страницы в браузере, появляется стандартное диалоговое окно браузера, в котором спрашивается, хотите ли вы снова отправить форму. И когда вы делаете последнее значение, введенное до того, как будет отправлен последний запрос рендеринга.
Шаблон kw.html.twig - прямолинейный - в основном некоторые элементы пользовательского интерфейса отображают форму и бит jquery для обработки ajax. Ничего особенного.
Я не могу понять, почему это происходит - мне просто нужна чистая форма по любому запросу. Который я думал, что получаю, когда снимаю вещи, как в примере кода ниже.
/**
* @Route("/kw", name="show_kw")
*/
public function showKwAction(Request $request)
{
if($request->isXmlHttpRequest()) {
if($request->getMethod() == 'POST') {
// do some logic...
return $this->json(array('kw_success' => true));
}
}
$kwData = array();
$kwForm = $this->createFormBuilder($kwData)
->add('kd', TextType::class)
->getForm();
if($request->isMethod('POST')) {
$kwForm->handleRequest($request);
$formData = $kwForm->getData();
// do some logic with formData...
unset($kwData);
unset($kwForm);
$kwData = array();
$kwForm = $this->createFormBuilder($kwData)
->add('kd', TextType::class)
->getForm();
}
$templateData = array(
'kwForm' => $kwForm->createView()
);
return $this->render(':backend:kw.html.twig', $templateData);
}
Любая помощь очень ценится.
EDIT: Использование Symfony 3.1
Это не является проблемой на стороне сервера. Ваш браузер повторяет последний запрос при нажатии на обновление. Попробуйте нажать enter в адресной строке, чтобы обновить его с помощью запроса GET, это работает. – Alsatian