1

我在用户面板中有一个加载程序,它正在等待用户移动设备的响应。不幸的是,我完全不知道如何从移动设备获取请求,并实时更新页面内容。

现在我遇到的问题是我通过 ajax 将数据从视图页面发送到我的控制器函数....然后在控制器函数中我将从 ajax 函数获得的一些数据发送到实用程序类中的另一个函数和然后将结果返回给 ajax 函数......每当我收到来自控制器函数的响应时,我就会启动 loader/preloader/ajax spinner ...现在在我从 android 发送一个变量之后......所以在android响应来之后我想停止加载器......所以我不知道如何专门调用ajax函数以及来自控制器的响应

有两种方法可以实现这一点

第一个我直接从android调用javascript函数然后获取值。第二个或者我从控制器调用javascript函数并在ajax函数中发送值..不知道是否可能......

我的js函数

function openPrompt()
{
  var cancelled = true;
  var lock='lock';
   $.modal.prompt('Enter message :', function(value)
    {
   $.ajax({
   type:"POST",
  data:{value:value,lock:lock},
  url:"/allsecure/api/lock/",
  success : function(data) {
   //start spinner
  },
   error : function() {
       alert("error");
 }
    });
      }, function()
      {
     });
     };

控制器功能

   public function lock(){

    if( $this->request->is('ajax') ) {
        $message = $this->request->data('value');
         $lock = $this->request->data('lock');
        $this->loadModel('Userinfo');
        $userid =  $this->Auth->User('idUser');


        $key = $this->Userinfo->getKey($userid);

        $apiKey = "1234567890";

      $resp = AllSecure::sendNotification($apiKey, array($key), array('message' =>  $lock, 'tickerText' =>$message));
       echo $resp; //after this response i am starting the loader


    }
}

      function android(){

         // here i am getting the variable from android 

        $json = $this->request->data('json');
        $data = json_decode($json, TRUE);


             openPrompt()//here i want to call the javascript function and want to send the value of  android to the javascript 


          }

还是有更好的方法来做到这一点???

4

1 回答 1

0

如果您想从服务器执行客户端 javascript,您可以执行与 JSONP 类似的操作。其中响应是在客户端执行的 javascript 函数中的 JSON 数据包装。

于 2013-07-11T13:08:27.683 回答