1

我正在使用一个简单的表单来提交一些新的文档信息,并希望用户能够点击“保存和新文档”按钮,以便他可以轻松添加多个文档。我尝试向表单添加一个按钮,该按钮在我第一次点击“保存和新建”按钮时起作用,并在现有表单上弹出另一个表单,但之后该按钮停止工作。可能是因为在生成新的时我没有正确关闭前一个?

我该怎么做?
我在调用新的 dialogURL() 之前尝试过使用 closeDialog() 但这显然不起作用......

(简化)代码示例如下:

class page_informa_documento extends Page {

  function init(){
  parent::init();
  $f=$this->add('Form');
  $f->setModel('Document');
  $f->addSubmit('Save');
  $f->addButton('Save and new document')->js('click',$f->js()->atk4_form('submitForm','otro'));


  if($f->isSubmitted() )
  {
      // save document info we just got here
      $doc->save();

    if ($f->isClicked('otro')) 

      $f->js()->univ()->dialogURL('New Document',$this->api->getDestinationURL('/informa/documento'))->execute();

    else  $f->js()->univ()->closeDialog()->execute();
  }
4

1 回答 1

0

如果您需要表单数据,则必须添加多个提交按钮。

$a=$f->addSubmit('Save');
$b=$f->addSubmit('Save and Add More');
if($f->isSubmitted()){

    // save your document here

    if($f->isClicked($a)){
        $this->js()->univ()->location($this->api->url('index'))->execute();
        // go to index page, we are done
    }
    if($f->isClicked($b)){
        $this->js()->univ()->location($this->api->url()->execute();
        // stay on the same page, just reload
    }
}

这是一个演示:http ://test-suite.agiletoolkit.org/?page=form

来源取自这里:https ://github.com/atk4/atk4-testsuite/blob/master/page/form.php#L16

于 2012-09-06T10:15:57.973 回答