我在twig模板中的jquery脚本中调用symfony2中的controllerAction进行表单验证和验证。在成功响应之后,我使用$ .post()从jquery脚本调用另一个控制器来为用户仪表板呈现模板。但我得到的是一个显示在控制台中的模板,但不是在用户浏览器窗口中。 如何以上述方式实现此目的。 ??
感谢您的帮助(提前) AKSHAT。
<script>
// my jquery code
$(document).ready(function()
{
$('.sign_in_box').click(function()
{
var data = new Object();
data.email=$('.email_txt').val();
data.password=$('.pwd_txt').val();
$.ajax('{{ path('login_login_validation') }}', {
type : 'POST',
data : data,
success : function(response){
var json = JSON.parse(response);
var flag = json.success;
if(flag)
{
$('#pwd_login_error').css('opacity' , '0');
$('#email_login_error').css('opacity' , '0' );
$.ajax('{{ path('login_login_verification') }}',{
type : 'POST',
data : data,
success : function(response){
var login = JSON.parse(response);
if(login.login)
{
alert("login success");
$.post('{{ path('login_dashboard') }}', data);
}
else
{
$('#pwd_login_error').css('opacity' , '0.5' );
}
}});
}
else
{
$('#pwd_login_error').css('opacity' , '0' );
$('#email_login_error').css('opacity' , '0.5' );
}
}
});
});
});
</script>
//////////////////////////////////////////////////////////////////////////////////////////////////////////
// controller
<?php
namespace Login\Bundle\Controller;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
class DashboardController extends Controller
{
public function indexAction()
{
$email = $this->get('request')->get('email');
return $this->render('LoginBundle:Dashboard:index.html.twig', array('email'=> $email));
}
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// routing file
login_homepage:
pattern: /
defaults: { _controller: LoginBundle:Homepage:index }
login_login_validation:
pattern: /ajax_validate
defaults: { _controller: LoginBundle:Login:validation }
login_login_verification:
pattern: /ajax_verify
defaults: { _controller: LoginBundle:Login:verification }
login_dashboard:
pattern: /dashboard
defaults: { _controller: LoginBundle:Dashboard:index }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////
// twig file
{% block message %}
hello ! {{ email | json_encode | raw }}
welcome to dashboard .
{% endblock%}
答案 0 :(得分:1)
唯一错误的是你正在渲染索引页面。成功登录后,您必须通过
重定向您的页面window.location = "http://somewhereelse.com";
或者你也可以在任何div中追加数据,它取决于你想要遵循的方式。