1

我在 extjs+Yii 工作。我的 yii 行动是:

public function actionCreateNew()
{
    $record=Qbquestionset::model()->findAllByAttributes(array("questionPaperId"=>1));

    foreach($record as $rec)
    {
        if($rec==NULL)
        {
            echo"Paper does not exists";
        }
        else
        {
            echo $rec->questionId;
            $record1=Qbquestion::model()->findByAttributes(array("questionId"=>$rec->questionId));
            echo "</br>". $record1->question;
            echo "</br>".CJSON::encode(array("Question"=>$record1->question));
        }

    }
}

此功能正在检索问题并以 json 格式发送。现在在 extjs 中,我创建了模型、视图、控制器和视图 = Model= Question.js

Ext.define('Balaee.controller.Question',
          {
    extend:'Ext.app.Controller',
    stores:['Question'],
    models:['Question','QuestionOption'],
    views:['question.Question','question.QuestionView'],
    init:function()
    {
        console.log("inside Question controller");


    },

             });

Store.js===

Ext.define('Balaee.store.Question', {
extend: 'Ext.data.Store',
model: 'Balaee.model.Question',
autoLoad: true,
proxy:{
    type: 'ajax',
    //url:'data/poll.json',
    api: {
        //read: 'data/question.json',
        read: 'http://localhost/NewQuestion/index.php?r=QuestionBank/qbpaper/CreateNew',
    },
    reader: {
        type: 'json',
        //root: 'questions',
    }
}
});

查看=== questionView.js

Ext.define('Balaee.view.question.QuestionView',
{
    extend:'Ext.view.View',
    id:'QuestionViewId',
    alias:'widget.questionView',
    store:'Question',
    config:
    {
        tpl:'<tpl for=".">'+
            '<div id="main">'+
            '</br>'+
            '<b>Question :-</b> {Question}</br>'+
            //'<p>-------------------------------------------</p>'+

            //'<tpl for="options">'+     // interrogate the kids property within the data
                //'<p>&nbsp&nbsp<input type="radio" name="opt" >&nbsp{option}</p>'+
            //'</tpl></p>'+

            '</div>'+
            '</tpl>',
        itemSelector:'div.main',    
    }
});// 

所以我通过提及它的 url 来绑定 yii 动作来存储。但是商店没有检索任何价值。那么在 extjs 存储中检索 yii optput 需要进行哪些更改?

4

1 回答 1

1

我可以看到的一个问题是您的 Yii 操作。您应该返回 JSON 结果,同时返回一些奇怪的东西。

尝试这个:

public function actionCreateNew()
{
    $record = Qbquestionset::model()->findAllByAttributes(array("questionPaperId" => 1));
    $result = array();
    foreach($record as $rec) {
        if ($rec != NULL) {
            $result[] = $record1->question;
        }
    }

    echo CJSON::encode(array(
        'success' => true,
        'root' => $result,
        'total' => count($result)
    ));
}

您还应该定义root: 'root'阅读器的属性。

于 2012-12-29T17:46:42.887 回答