0

こんにちは、私は Zend Framework アプリを持っています。次のコードはpopularActionコントローラーです

public function popularAction()
    {
        $type = $this->_getParam('ref',1);
        if($type == 'reviews'){
        $businessReviewMapper = new Application_Model_Mapper_BusinessReviewsMapper();
        $result = $businessReviewMapper->getTotalVote();

        $rotd = $businessReviewMapper->getROTD($result['review_id']);
        $rotd[0]['u_img'] = $this->view->getLoginUserImage($rotd[0]['social_id'],$rotd[0]['login_type'],null,null,square);
        $rotd[0]['rating'] = $this->view->getRatingImg($rotd[0]['rating']);
        $rotd[0]['business_name_url'] = preg_replace("![^a-z0-9]+!i","-", $rotd[0]['business_name']);            
        $this->render('reviews');
        $this->_helper->json($rotd);



        } elseif($type == 'openings') {
            $this->view->text = "New Openings";

        } else {
            $this->_helper->redirector('index', 'index', 'default');
        }

    }

ユーザーhttp://localhost/business/popular?ref=reviewsが上記のコントローラー コードを参照すると、reviews.phtml テンプレートがレンダリングされます。テンプレート自体の内部には、次のようなデータの ajax リクエストがあります。

function getPopular()
{
    var count=1;
    $.ajax({
        url:"<?=$this->baseUrl('business/popular?ref=reviews')?>",
        data:{'count':count},
        dataType:"json"
        type:"POST",
        success:function(data){
            alert('ok')
        }
    });

残念ながら、$this->_helper->json($rotd);reviews.phtml にデータを渡しませんが、zend db モデルによって返される json データを表示します。どこが間違っている可能性がありますか?ありがとう

4

1 に答える 1

1

あなたの目標がAjaxリクエストで.phtmlファイルの代わりにJSONを送信することである場合、これを実装してみてください:

  if ($this->getRequest()->isXmlHttpRequest()) {
        if ($this->getRequest()-isPost()) {
            $this->_helper->json($rotd);
        }
    }

この部分は、リクエストが ajax ベースかどうかをチェックします。

于 2012-10-24T05:40:20.433 に答える