When i render create request using jquery ajax. I cant handle/validate form using $form->isSubmitted() && $form->isValid() because $form->isSubbmitted() didnt working
My form builder and render view
public function index(Request $request, EntityManagerInterface $entityManager): Response
{
$category = new Category();
$form = $this->createForm(CategoryFormType::class, $category);
$form->handleRequest($request);
$list = $entityManager->getRepository(Category::class)->listCategory();
return $this->render('admin/index/category.html.twig', [
'categoryForm' => $form->createView(),
'list' => $list
]);
}
My ajax
$(document).ready(function(){
$("#category-add").submit(function(e){
e.preventDefault();
var form = $(this);
$.ajax({
type: "PUT",
url: '/api/admin/category',
data: form.serialize(),
dataType: 'x-www-form-urlencoded',
success: function(data)
{
console.log(data);
}
});
});
});
My script where i want handle form request
public function add(Request $request, EntityManagerInterface $entityManager): Response
{
$category = new Category();
$form = $this->createForm(CategoryFormType::class, $category);
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$category->setCategoryName($form->get('categoryName')->getData());
$entityManager->persist($category);
$entityManager->flush();
return new response('true');
}
return new response('false');
}
}
My twig template
<form id="category-add">
<input type="hidden" name="csrf_token" value="{{ csrf_token('add-category') }}" />
<input type="text" name="categoryName" placeholder="Nazwa kategorii" class="w-full bg-black border border-grey-one rounded px-4 py-2 focus:outline-none text-sm text-white-two mb-4" />
<button class="w-full uppercase bg-green-three px-6 py-3 rounded-md text-white font-semibold tracking-wide text-xs focus:outline-none" type="submit">Dodaj</button>
</form>