2012-12-31 46 views
0

我在yii工作。我控制器功能原樣如何獲得所需格式的json輸出

public function actiongetPublicQuestion() 
{ 
    $model=new Qbquestion(); 
    $new = Yii::app()->db->createCommand()->select('max(tranId)')->from('qbpublicuserquestion')->queryScalar(); 
    $CurrentQuestionId=Qbpublicuserquestion::model()->findByPk($new); 
    $currentQuestion=Qbquestion::model()->findByPk($CurrentQuestionId->questionId); 
    echo "Currently displayed question is=".$currentQuestion->question."</Br>"; 
// $answer=Qbquestionoption::model()->findAllByAttributes(array('questionId'=>$currentQuestion1->questionId)); 



    $old = Yii::app()->db->createCommand()->select('max(tranId-1)')->from('qbpublicuserquestion')->queryScalar(); 
    $PreviousQuestionId=Qbpublicuserquestion::model()->findByPk($old); 
    $currentQuestion1=Qbquestion::model()->findByPk($PreviousQuestionId->questionId); 
    echo "previously displayed question is=".$currentQuestion1->question; 
    $answer=Qbquestionoption::model()->findAllByAttributes(array('questionId'=>$currentQuestion1->questionId)); 

    foreach($answer as $ans) 
    { 
    // var_dump($ans); 

     if($ans->isAnswer==1) 
     { 
      echo "</br>"."correct Answer is=".$ans->option."with optionId=".$ans->optionId; 
      $true=$ans->option; 
      echo "</br>"; 
      echo "{'questions':[".CJSON::encode(array("question"=>$currentQuestion1->question,"answer"=>$true,"question1"=>$currentQuestion->question))."] }"; 
     } 
    } 
} 

所以我retriving從數據庫中的兩個問題,這樣的方式表的最後一項是當前顯示的問題,倒數第二個條目previouly顯示的問題。我想發佈以前顯示的問題的答案也。 我以json編碼格式發送此信息。 我想在格式輸出=

"Questions": [ 
    {"question": "Who is the prime minister of india?","answer":"Manmohan sinh"}, 
    {"question": "2 when who will win the test?"}, 
] 

但是,當我使用相同的變量在CJSON ::編碼(陣列( 「問題」=> $ currentQuestion1->的問題, 「答案」=> $真「問題「=> $ currentQuestion-> question))。」]}「;},如果我們在編碼的cjson數組中使用相同的變量,它只會給出一個隊列。那麼如何獲得所需的輸出。

回答

3

作爲要輸出具有兩個JSON對象(在大括號即兩個項目),傳遞給CJSON數據結構::編碼必須是對象或數組,即:

CJSON::encode(array(array("question"=>$currentQuestion1->question,"answer"=>$true), 
        array("question"=>$currentQuestion->question), 
        ) 
      ); 
的陣列