1

我正在努力学习足够的知识来创建一个网站,让人们使用 Agile Toolkit 4.2 回答测验问题。

我有一个页面显示来自“sampleq”模型的一个问题及其答案选择。我想制作一个按钮来显示模型中的下一条记录。

我尝试了很多不同的方法来让 js()->reload() 命令正常工作,但我一直没能做到。我收到 AJAX“意外标识符”错误。我已经浏览了该站点上的相关问题,并在 ATK 站点上查找了文档,但我没有找到适合我的示例。

谁能告诉我如何让按钮正确重新加载网格?

function init(){
    parent::init();
    $page=$this;
}

function page_qlisting() {

    $qid=$this->recall('value',1);
    echo $qid;
    $NextB=$this->add('Button')->SetLabel('Next Question '.$qid);

    $grid=$this->add('Grid');
    $grid->setModel('sampleq',array('question','A1','A2','A3'));
    $grid->dq->where('id=',$qid);

        if($NextB->isClicked()){
            //$this->memorize('value',$qid+1);
            $grid->js()->reload();
        }               
  }

function page_qentry() {

$this->api->auth->check();
$this->add('Html')->set('Welcome to the question entry page.<br>');
$this->add('CRUD')->setModel('sampleq');
}

}

编辑:阅读罗马人的回答后,我首先尝试了这个:

$qid=$this->recall('value',1);
    $grid=$this->add('Grid');
            $grid->setModel('sampleq',array('id','question','A1','A2','A3'));
            $grid->dq->where('id=',$qid);
            $this->add('Button')->SetLabel('Next Question')->js('click', $this->memorize('value',$qid+1))->js('click', $grid->js()->reload());

这实际上有效 - 它一次只显示一条记录,当我单击按钮时它显示下一条记录。接下来我尝试添加一个“上一个”按钮,如下所示:

$qid=$this->recall('value',1);
        $grid=$this->add('Grid');
        $grid->setModel('sampleq',array('id','question','A1','A2','A3'));
        $grid->dq->where('id=',$qid);
        $this->add('Button')->SetLabel('Previous Question')->js('click', $this->memorize('value',$qid-1))->js('click', $grid->js()->reload());
        $this->add('Button')->SetLabel('Next Question    ')->js('click', $this->memorize('value',$qid+1))->js('click', $grid->js()->reload());

但是,这不起作用。两个按钮都在递减。我试着把它像你的调节器按钮示例一样布置在这里。这是我的增量按钮代码在该尝试中的样子:

$incr=$this->add('Button')->SetLabel('Next Question');
        if($incr->isClicked()){
           $this->memorize('value',$qid+1);
           $grid->js()->reload();
           }

在这种情况下,当我单击按钮时,我会收到“AJAXec 响应中的错误:SyntaxError: Unexpected identifier”。

您能否就如何使用网格(或 crud)进行增量和减量提供任何建议?当您尝试刷新网格而不是刷新按钮时,为什么调整器示例不起作用?感谢您之前的回答,并提前感谢您可能有时间提供的任何其他指导。

4

1 回答 1

1

应该是这样的:

$this->add('Button')->js('click', $grid->js()->reload());

如果您使用 CRUD,则可能需要重新加载 CRUD。

于 2013-08-18T18:57:40.820 回答