Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按钮的细枝页面中的服务器端响应_Javascript_Symfony_Button_Twig - Fatal编程技术网

Javascript 按钮的细枝页面中的服务器端响应

Javascript 按钮的细枝页面中的服务器端响应,javascript,symfony,button,twig,Javascript,Symfony,Button,Twig,我想为一个小树枝页面中的按钮获取服务器端响应。 例如,页面中将有2个按钮---- 开/关 当页面加载时,它应该从服务器(从elasticsearch数据库检查)检查两个按钮是否返回True或false 例如,我们说,对于ON按钮,它返回“True”,它应该将其颜色更改为绿色,如---- 主要目的是检查页面加载时的当前状态 因此,这不是一个点击功能,因为它显示页面加载时的状态 我相信会有一些简单的解决办法来解决这个问题 有人知道如何解决这个问题吗。这实际上与Symfony无关。您所需要做的就是向服

我想为一个小树枝页面中的按钮获取服务器端响应。 例如,页面中将有2个按钮----

开/关

当页面加载时,它应该从服务器(从elasticsearch数据库检查)检查两个按钮是否返回True或false

例如,我们说,对于ON按钮,它返回“True”,它应该将其颜色更改为绿色,如----

主要目的是检查页面加载时的当前状态

因此,这不是一个点击功能,因为它显示页面加载时的状态

我相信会有一些简单的解决办法来解决这个问题


有人知道如何解决这个问题吗。

这实际上与Symfony无关。您所需要做的就是向服务器端脚本(控制器)发送一个ajax请求,以获取服务器的状态。像这样:

$(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'){
       $('#your-button').addClass('success');
     }
     // else it is disabled
     else
       $('#your-button').addClass('primary');
   });
});

上面是您的客户端代码,现在要将其与symfony应用程序集成,
/url/to/action
必须指向symfony应用程序中返回状态的某个控制器操作,示例实现如下所示:

//in your controller, /url/to/action must lead to getStatusAction in your routing
public function getStatusAction(Request $request){
    if($this->isElasticEnabled())
      return new \Symfony\Component\HttpFoundation\JsonResponse(array('status' => 'on'));
      else 
        return new \Symfony\Component\HttpFoundation\JsonResponse(array('status' => 'off'));
}
//in your controller, /url/to/action must lead to getStatusAction in your routing
public function getStatusAction(Request $request){
    if($this->isElasticEnabled())
      return new \Symfony\Component\HttpFoundation\JsonResponse(array('status' => 'on'));
      else 
        return new \Symfony\Component\HttpFoundation\JsonResponse(array('status' => 'off'));
}