我在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))."] }";
}
}
}
所以我正在从数据库中搜索两个问题,这样表格的最后一个条目当前显示问题,而最后一个条目是先前显示的问题。我想发布以前显示的问题的答案。 我以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”=&gt; $ currentQuestion1-&gt; question,“answer”=&gt; $ true,“question”=&gt; $ currentQuestion-&gt ;问题))。“]}”;},如果我们在编码的cjson数组中使用相同的变量,它只给出一个队列。那么如何获得所需的输出。
答案 0 :(得分:3)
由于你想要的输出有两个JSON对象(即花括号中的两个项目),你传递给CJSON :: encode的数据结构需要是一个对象或数组的数组,即:
CJSON::encode(array(array("question"=>$currentQuestion1->question,"answer"=>$true),
array("question"=>$currentQuestion->question),
)
);