0

私はyiiで働いています。私はコントローラー機能を持っています-

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))."] }";
        }
    }
}

そのため、テーブルの最後のエントリが現在表示されている質問であり、最後から 2 番目のエントリが以前に表示された質問であるような方法で、データベースから 2 つの質問を取得しています。以前に表示された質問の回答も公開したいと思います。この情報を json エンコード形式で送信しています。フォーマット=で出力したい

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

しかし、私が CJSON::encode(array("question"=>$currentQuestion1->question,"answer"=>$true,"question"=>$currentQuestion->question)) で同じ変数を使用している場合。"] } ";}、エンコードされたcjson配列で同じ変数を使用すると、質問は1つだけになります。では、必要な出力を取得する方法。

4

1 に答える 1

3

必要な出力には 2 つの JSON オブジェクト (中括弧内の 2 つの項目) があるため、CJSON::encode に渡すデータ構造は、オブジェクトの配列または配列である必要があります。

CJSON::encode(array(array("question"=>$currentQuestion1->question,"answer"=>$true), 
                    array("question"=>$currentQuestion->question),
                    )
            );
于 2013-01-01T01:15:15.773 に答える