-3

我正在开发Cakephp 2.x ....实际上我想要的是我在我的视图页面上显示电池电量和内存使用情况...所以电池和内存在几秒钟或几分钟后不断变化。 ..所以我不希望用户每次刷新或重新加载页面并检查这两个的状态...所以我想从 ajax 或 jquery 中的 db 获取数据并将它们显示给用户...我知道发送表单数据然后在 ajax 中返回的语法...但是在这里我没有发送任何东西..我的页面上还有其他东西我需要 ajax 中的数据...帮助我...如果有人实现了在此之前请分享它

4

1 回答 1

0

在控制器中执行您的逻辑,然后返回一个 ajaxResponse。

  class FooController extends AppController{
    public $components = array("RequestHandler");
    //... Other actions here

    public function getSysParams(){  
         if($this->RequestHandler->isAjax()){
             //Your logic here, example:
             $sysInfo = $this->Foo->find('first', array('fields'=>array('battery', 'cpu'));
             //Return the data to AJAX call using json_encode
             return new CakeResponse(array('type' => 'application/json',
                'body' => json_encode(array('battery' => $sysInfo['Foo']['battery'], 'cpuUsage'=>$sysInfo['Foo']['cpu']),
                JSON_FORCE_OBJECT),
                'charset' => 'UTF-8')
             );

         }
     }
   }

然后在 js 中会变成这样:

{'battery':"33%", 'cpuUsage':"80%"}

我已经在 CakePHP 2.3 上对其进行了测试,并且可以正常工作。在以前的版本中,我不确定。


编辑

这是使用 jQUery 的 JavaScript 部分:

       $.ajax({
         url: '/Foo/getSysParams'
         data: {'foo': 'bar'}, //Any data you want to send
         success: function(dataReturned){
             $("div#update").text(dataReturned.battery);
             $("div#update2").text(dataReturned.cpuUsage);
         }
       });
于 2013-07-19T20:17:29.543 回答