1

ユーザーパネルにローダーがあり、ユーザーのモバイルデバイスからの応答を待っています。残念ながら、モバイル デバイスからリクエストを取得し、ページ コンテンツをリアルタイムで更新する方法については完全に空白です。

今私が抱えている問題は、ビューページからajaxを介してコントローラー関数にデータを送信していることです....次に、コントローラー関数で、ajax関数から取得したデータをユーティリティクラスにある他の関数に送信しています。次に、結果をajax関数に返します....そして、コントローラー関数から応答を受け取るたびに、ローダー/プリローダー/ajaxスピナーを開始しています...今、アンドロイドから変数を送信しています... Androidの応答が来た後、ローダーを停止したい...だから、具体的にajax関数とコントローラーからの応答を呼び出す方法がわからない

これを達成するには2つの方法があります

まず、Android から JavaScript 関数を直接呼び出して、値を取得します。2番目またはコントローラーから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 に答える