我有一個非常簡單的表單,使用createFormBuilder創建,只提供一個簡單的文本字段(沒有附加到表單的實體)。Symfony Form在提交後重置
當提交表單時,我會執行一些邏輯,然後取消設置表單和formData,如許多帖子中對此主題所建議的,如果您希望表單在提交後重置。
簡單的ajax-requests還有一些額外的動作,主要啓動一些UI的東西 - 不會觸及表單本身,也不會重新加載頁面。
一切正常,除非表格顯然只是不想被重置 - 意思是:只要按下瀏覽器中的頁面重新加載按鈕,就會出現標準瀏覽器對話框,詢問您是否要再次提交表單。當你提交最後一次渲染調用之前輸入的最後一個值。
模板kw.html.twig是直截了當的 - 主要是一些UI的東西的形式呈現和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);
}
任何幫助,高度讚賞。
編輯:使用Symfony的3.1
這不是服務器端問題。點擊刷新時,瀏覽器會重複上次請求。嘗試在地址欄中輸入以使用GET請求來刷新它,它會工作。 – Alsatian