每5秒调用一次控制器的javascript代码
$.post('{{path('nb_invitation')}}',
{data: '1'},
function(response){
if(response.code == 100 && response.success){
alert('yes');
}
}, "json");
代码:
我的notificationIv.html
{% block notificationIv -%}
// content
{% endblock %}
生根
nb_invitation:
path: /communaute/nb_invitation
defaults: { _controller: communauterBundle:notificationIv:nb_invitation }
控制器
public function nb_invitationAction(Request $request){
return $this->render('communauterBundle:notificationIv:notificationIv.html.twig');
}
的index.html
{% block notificationIv -%}
{{ render(controller('communauterBundle:notificationIv:nb_invitation')) }}
{% endblock %}
答案 0 :(得分:1)
$.post('{{path('nb_invitation')}}',
{data: '1'},
function(response){
if(response.code == 100 && response.success){
$("#notification_identifier").html(response.data) // or whatever you return
}
}, "json");
由于floren说你很困惑,上面的代码是一个使用jquery的例子,只需要定义一个id(或一个类)到notificaction容器,这样你就可以更新内容..就像
{% block notificationIv -%}
<div id="notification_identifier"></div>
{% endblock %}
答案 1 :(得分:0)
我认为你混淆了JS和PHP的使用 - 它们在html页面中并不相同。你的
{{ render(controller('communauterBundle:notificationIv:nb_invitation')) }}
不会&#34;刷新&#34;本身只是因为你对控制器进行了ajax调用。如果你真的想要刷新那么可能是
<div id="alert"></div>
return JsonResponse(array('message' => $message ))
我不熟悉jQuery ajax语法,但基本上你做了一个GET ajax并用你的ajax返回的内容替换div#alert中的html值。像(纠正我的语法)
$.ajax({
url: "{{path('nb_invitation')}}",//even though you can use js routing in symfony, much cleaner
}).done(function(response) {
$.getElementById('alert').html(response.message)
});
我知道语法不准确,但这就是想法