创建jquery脚本
function send_form() {
var data = $('#registration').serialize();
alert(data);
$.ajax({
type: "POST",
url: "{{ path('registrationAction') }}",
data: data,
success: function (data) {
if(data.success == true){
alert("Ok");
window.location.replace("{{ path('userRedirectAction') }}");
}
else
alert("False");
}
}
);
}
这只是一部分。如果我警报(数据),我有我需要的我的控制器
public function registrationAction(Request $request)
{
$response = new JsonResponse();
$form = $this->createForm(new UsersType());
if($request->getMethod() == 'POST')
{
$data = $request->request->get('pyramida_modelbundle_users');
$username = $data['username'];
$password = $data['password'];
$email = $data['email'];
$refer = $data['refer_id'];
$user = new Users();
$user->setUsername($username);
$user->setPassword($password);
$user->setEmail($email);
$user->setReferId($refer);
$em = $this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
$response->setData(array("success" => true));
return $response;
}
return $this->render("CoreBundle:Registration:registration.html.twig", array('form' => $form->createView()));
}
我认为我的JQuery有问题,因为注册后用户没有重定向到你的页面。请帮忙查找错误
您错过添加dataType : 'json'
这是你的解决方案。
$.ajax({
type: "POST",
url: "{{ path('registrationAction') }}",
dataType : 'json',
data: data,
success: function (data) {
if(data.success == true){
alert("Вы успешно зарегистрированы");
window.location.replace("{{ path('userRedirectAction') }}");
}
else
alert("Произошла ошибка при регистрации");
}
}
);