2016-06-21 8 views
0

私のwebappには、一番下にテーブル(htmlテーブル)を表示するビューがあります。 select要素とAJAXレスポンスに応じて、テーブルの一部のデータを別の形式で表示する必要があります。基本的にはタイムゾーンに関する。AJAXのレスポンスに基づいてZendビュー内のテーブルを更新する

JSON AJAXが私のwebappにたくさんありますが、これはうまくいきます。

しかし、この特定の側面で私は本当に混乱しています。私はたくさんのものを試しました。ここで

は要約です: - select要素はいくつかのjavascript を実行するのonchangeを持っている - Javascriptを2 AJAX呼び出し、(下図)JSON用とHTMLのための1

$.ajax({ 
       url: URL, 
       type: "POST", 
       data: {timzone_option:option,lo_id:lo_id}, 
       dataType:'HTML', 
       success: function(response) 
       { 
     $('#c-content').html(data); 
       } //end success 

    }); 
  • 走りますJSONの一つが正常に動作し、HTMLの1は何も
  • URLが呼び出されもしない、次ずコントローラ内の機能をトリガ:

    $this->_helper->layout->disableLayout(); 
    $option_id = $this->_getParam('timzone_option'); 
        $in_lo_id = $this->_getParam('lo_id'); 
    
    $this->_helper->layout->disableLayout(); 
    global $objSession; 
    if($this->view->user->user_id!='') 
    { 
         $recC = $this->modelSuper->Selectcallprod("CALL SP_GET_C_VIA_O('".$in_lo_id."')",'fetchall'); 
         $list_tmzn = getVal('timezones','zone_name', 'zone_id', $recC['listing_timezone']) ; 
         $user_tmzn = getVal('timezones','zone_name', 'zone_id', $this->view->user->user_timezone_id) ;  
         if($option_id == 1) 
          { 
         $numCount=0; 
         foreach($recC as $record) 
         { 
          $recC[$numCount]['loc_deadline_date']=convertUserDate($record['loc_deadline_date'], $this->view->user->user_datetimeformat, $list_tmzn,'UTC'); 
          $numCount++; 
         } 
          } 
          if($option_id == 2) 
          { 
         $numCount=0; 
         foreach($recC as $record) 
         { 
          $recC[$numCount]['loc_deadline_date']=convertUserDate($record['loc_deadline_date'], $this->view->user->user_datetimeformat, $user_tmzn,'UTC'); 
          $numCount++; 
         } 
          } 
        $this->view->c = $recC; 
    } else 
    die(); 
    echo $recC; 
    exit(); 
    

Zend/PHPは、AJAXレスポンスをどのように「注入する」のが予想されているのですか?(テーブルに表示するレコードセットである配列です)テーブルにきれいに?私は、HTMLからJSONにdataTypeを変更しようとしましたが、どちらも違いはありません。

SQLストアドプロシージャの構文とパラメータが正常であることを確認しました.Javascriptは実行されていますが、結果はビューに戻って流れません。

感謝の意を表します。ありがとうございました。

答えて

0

ajaxの場合$this->view->cは機能しません。 jsonのやり方で簡単にecho json_encode($recC)を使用してください。今すぐあなたはjavascriptで応答を得ることができるでしょう。成功ブロックにconsole.log(data)を追加するだけです。

+0

私はそれを試しましたが、残念なことに喜びはありません。コントローラーにajax呼び出しから返された値が格納されているポイントまでコードを取得しました。結果をZendのajaxビューに渡すだけで済みます。 – ChrisFNZ

+0

あなたのコードを更新してください。 firbugコンソールで出力を確認しましたか? –

0

オリジナルのJavascriptは問題ありませんでした。問題はコントローラー内の受信動作にありました。

変更されました: $ list_tmzn = getVal( 'timezones'、 'zone_name'、 'zone_id'、$ recC ['listing_timezone']);

to: $ list_tmzn = getVal( 'timezones'、 'zone_name'、$ recC [0] ['listing_timezone']);

null処理を改善するためにforeachブロックを両方とも改良しました。

最後に、アクションと同じ名前の受信Zendビューを作成しました。

その時点で私は自分のコンテンツを見ることができました。私はAjaxビューをちょっと整理しなければなりませんでしたが、現在はうまく機能しています。

関連する問題