我想在树枝页面中为按钮获取服务器端响应。举个例子 - 页面中会有2个按钮---
打开/关闭
当页面加载时,它应检查服务器(从elasticsearch数据库检查)是否为两个按钮返回True或
。所以对于instanse我们说对于ON按钮它返回“True”它应该将它的颜色改为绿色,就像----
$(this).addClass('btn-success');
$(this).removeClass('btn-primary');
主要目的是检查页面加载时的当前状态。
所以这不是一个点击功能,因为它显示了加载页面时的状态。
这是我的客户端代码---
$(document).ready(function(){
//send the request with empty data to the server to check the status
$.post('/url/to/action', {}, function(msg){
// we return a response like {status: 'on'} to the client if the search is on
if (msg.status == 'on'){
$('#my-button').addClass('success');
}
// else it is disabled
else
$('#my-button').addClass('primary');
});
});
这是与我的symfony应用程序的集成---
public function getStatusAction(Request $request){
if ($output = !null) {
return new \Symfony\Component\HttpFoundation\JsonResponse(array('status' => 'on'));
} else {
return new \Symfony\Component\HttpFoundation\JsonResponse(array('status' => 'off'));
}
}
这是我跑来获取状态时的状态
现在问题是当页面加载时它没有重新启动按钮的状态。 我的意思是如果“status =='on'”按钮应该是绿色而不是主要。
有谁知道如何解决这个问题。
答案 0 :(得分:0)
为此,您可以使用setInterval
function refreshStatus () {
$.post('/url/to/action', {}, function (msg) {
// we return a response like {status: 'on'} to the client if the search is on
if (msg.status == 'on'){
$('#my-button').addClass('success');
}
// else it is disabled
else
$('#my-button').addClass('primary');
});
}
refreshStatus(); // call on page load
setInterval(refreshStatus, 5000); // call refreshStatus every 5 seconds